Python (Django) を使用して Web アプリケーションに取り組んでおり、本番環境にデプロイする際に MySQL と PostgreSQL のどちらが適しているかを知りたいです。
あるポッドキャストでJoel は、MySQL に問題があり、データに一貫性がないことを述べました。
誰かがそのような問題を抱えていたかどうか知りたいです。また、簡単に微調整できるパフォーマンスに関しては?
Python (Django) を使用して Web アプリケーションに取り組んでおり、本番環境にデプロイする際に MySQL と PostgreSQL のどちらが適しているかを知りたいです。
あるポッドキャストでJoel は、MySQL に問題があり、データに一貫性がないことを述べました。
誰かがそのような問題を抱えていたかどうか知りたいです。また、簡単に微調整できるパフォーマンスに関しては?
今後の読者への注意:以下のテキストは、2008 年 8 月に最後に編集されました。この編集の時点で、ほぼ 11 年前になります。ソフトウェアはバージョンごとに急速に変更される可能性があるため、以下のアドバイスに基づいて DBMS を選択する前に、それがまだ正確かどうかを調査してください。以下の新しい回答を確認してください。
より良い?
MySQL は、Web ホストによって提供されることがはるかに一般的です。
PostgreSQL は、はるかに成熟した製品です。
どうやら、この Web ページによると、MySQL は同時アクセス レベルが低く、書き込みよりも読み取りが多い場合に高速です。一方、負荷と書き込み/読み取り比率が増加すると、スケーラビリティが低下します。PostgreSQL は、同時実行レベルが低い場合は比較的低速ですが、負荷レベルの増加に応じて適切にスケーリングし、同時アクセス間の十分な分離を提供して、書き込み/読み取り比率が高い場合の速度低下を回避します。これらは条件に非常に敏感であるため、多くのパフォーマンス比較にリンクしています。
したがって、「どちらが速いか」が決定要因である場合、答えは「 場合によります。それが本当に重要な場合は、両方に対してアプリケーションをテストしてください。」各データベースで)、データベースからがらくたを調整してから選択します。優れたDBAの費用は驚くべきものです。そして、それらはすべての価値があります。
それが重要なとき。
おそらくそうではないので、サウンドが好きなデータベースを選択して、それを使用してください。より多くの RAM と CPU、より適切なデータベース設計、巧妙なストアド プロシージャ トリックなどを使用すると、より優れたパフォーマンスを購入できます。これらすべては、MySQL と PostgreSQL のどちらを選択するかで悩むよりも、random-website-X の方が安価で簡単です。 、および高価な DBA による専門的なチューニング。
count
行も戻すことができませんでした. 逸話の複数形はデータではありません。 彼は言った:
MySQL は、私のキャリアの中でプログラミングした唯一のデータベースであり、データの整合性の問題がありました。クエリを実行すると意味のない回答が返されますが、これは正しくありません。
そして彼はまた言った:
それは単なる逸話です。そして、それは実際、ブログやインターネット全般について私を苛立たせていることの 1 つです。[...] 逸話を真実にする奇妙な傾向があり、ブロガーとして、私はこれについて少し罪悪感を感じ始めています.
数ヶ月後、ただチャイムを鳴らします。
2つのデータベースの地理的機能は、非常に異なります。PostgreSQLには例外的なPostGIS拡張機能があります。MySQLの地理的機能は、比較すると実質的にゼロです。
Webサービスにロケーションコンポーネントがある場合は、PostgreSQLを選択します。
Django は使用していませんが、MySQL と PostgreSQL の両方を使用しています。データベースを Django のバックエンドとしてのみ使用する場合は、違いのほとんどが抽象化されるため、あまり問題になりません。PostgreSQL は、データ サイズ/クライアント数が増加しても、MySQL ほど速くレンガの壁にぶつからないため、もう少しスケーラブルです。
新しいシステムを実行している場合、本当の違いが現れます。次に、PostgreSQL をお勧めします。これには、DB レイヤーをよりカスタマイズ可能にする多くの機能があり、必要な要件に合わせて微調整できるからです。
少し古くなっていますが、MySQL Gotchasページを読む価値があります。そこにリストされている項目の多くは、私の知る限り、まだ真実です.
私はPostgreSQLを使用しています。
私は両方を幅広く使用しています。特定のプロジェクトに対する私の選択は、要約すると次のようになります。
特別なソースとは、次のようなものを意味します。
まあ、過去の開発 (ビルド、ステージング、本番) で別のデータベース ブランドを使用するべきではないと思います。
私が理解している方法から、PostgreSQLはより「正しい」データベース実装であり、mySQlはそれほど正確ではありませんが(準拠性が低くなります)、高速です。
したがって、CRUD アプリケーションをほとんど作成している場合は、mySQL が最適です。データベースから特定の機能が必要な場合 (よくわからない場合は必要ありません)、postgreSQL を検討することをお勧めします。
さまざまなサーバーにかなり分散される可能性のあるアプリケーションを作成している場合、MySQL は移植性のために PostgreSQL よりも多くの重みを持っています。PostgreSQL は、少数ではありますが、満足のいく Web ホストとは言えない Web ホストで見つけるのは困難です。ほとんどの点で、特に最終的な微調整に関しては、PostgreSQL は MySQL よりも低速です。全体として、PostgreSQL を完全に回避するのではなく、短時間だけ試してから判断することをお勧めします。
@ウルフマンドラゴン
PostgreSQL はオブジェクトを (ごくわずかに) サポートしていますが、本質的にリレーショナル データベースです。その概要ページから:
PostgreSQL は、強力なオープン ソースのリレーショナルデータベース システムです。
ありがとうございました。MySQL で Django を使用しましたが、問題ありません。必要な機能に基づいてデータベースを選択してください。MySQL と Postgre を比較するのは難しい。Postgress と SQL Server を比較することをお勧めします。
MySQLはリレーショナルデータベース管理システムであり、PostgreSQLはオブジェクトリレーショナルデータベース管理システムです。PostgreSQLは、クエリの記述方法をより細かく制御できるため、C++またはJava開発者に適しています。ORDBMSは、オブジェクトとユーザー定義型も提供します。SQLクエリ自体は、MySQLよりもISO標準にはるかに近いものです。
ORDBMSまたはRDBMSが必要ですか?それはあなたの質問にもっとよく答えるでしょう。