質問が挑発的に聞こえることは知っていますが、実際にはそうではありません。私は最近、MySQLが多くの分野で制限されていることに気づき、PostgreSQLがますます好きになっています。スケーリングがはるかに優れており、MySQLよりもSQL標準をはるかに尊重しています。
私はまだPostgreSQLの世界に慣れていませんが、将来のすべてのプロジェクトでMySQLから離れることをいとわないので、知りたいのは、MySQLの特定の機能でより優れた機能があるかどうかです( PostgreSQLよりも高性能またはよりユーザーフレンドリーなど)?
MySQLから何を見逃すのだろうかと思っています。 MySQLのAUTO_INCREMENTフィールドはPostgreSQLのSEQUENCESよりも便利であり、Windowsでの展開は過去に問題があったことをすでに知っています(もう問題ではありません。私にとっては問題ではありません)。
ほかに何か?
あなたは明らかに開発者の観点からこれに取り組んでいるので、SOでもっと役立つ答えを見つけるかもしれません。
管理の観点から:
-レプリケーション(HA)
-レプリケーション(スケーリング*)
-レプリケーション(バックアップ)
- アプリケーションのサポート
-コミュニティのサイズと深さ(ドキュメント、サポート)
-既存のインストールベース/利用可能なジョブ
* postgres
スケーリングの改善について言及されていることに注意してください。スケーリングとは、誰にとっても異なることを意味しますが、原則として、複数のサーバーに負荷を分散するためのパスがあるものは、そうでないものよりもスケーリングが優れています。
COUNT(*)もPSQLでははるかに遅くなります。この種の機能のトリガーを作成することになっています。
Postgresは更新ごとにコピーオンライトを効果的に実行するため(トランザクションを処理できるように)、トランザクションが不要で、読み取りに関連して多くの書き込みを行う場合、MySQLにはPostgreSのようなオーバーヘッドはありません。意志。 (更新されたすべてのレコードは、さらに書き込み、インデックスの更新などを行う必要があります)
「便利」であるauto_incrementフィールドはあまり関連性がありませんか? Oracleにはシーケンスがあり、間違いなく世界で最も広く使用されている商用データベースです。
これは、PostgreSQLがクラッシュセーフになった場合などについての膨大な量の情報です。 PostgreSQL wikiの this ページを紹介します(間違いなく色付きの意見ですが、とにかくそれがあなたが探しているものです)。
多くの人がこのページで、MySQLは初心者にとってよりフレンドリーであると述べています。そう?ミッションクリティカルな環境でそれがどのように重要であるかを説明してください。
MySQLはしばしばSQL'ed grepと呼ばれます。私(現在の執筆時点)では、PHP —かなり厄介ですが、人気があります。
MySQLから何を見逃すのだろうかと思っています。
最初からデータベースの名前を変更してみてください。 ;)次に、条件付きインデックスを追加(欠落)します。
P。 S。MySQLが持つ議論の余地のない優れた機能を少なくとも1つ指摘できます。これは、eの(符号なし)バイトのように小さいスペース節約データ型をサポートします。 g ..これにより、RAMと、それに応じて使用するとディスク容量を大幅に節約できます。しかし、残念ながら、それに加えて言及するメリットはほとんどありません。 リンク での比較=あなたが与えられたのは本当に気の利いたものです。
auto_incrementは、挿入の同時実行性が非常に高いテーブルを吸い込むことに気付くまで便利です。その時点で、それらはボトルネックになり、MyISAMテーブルを使用してシーケンスを実装する必要があります。
とにかく、あなたの質問に答えるために、MySQLが行ってきた最大のことは、レプリケーションチェーンと読み取りスレーブを可能にするレプリケーションを簡単にセットアップできることでした。ただし、Postgresには次のリリース9.0(すでにアルファステータスでリリースされています)でそれがあります。