133

Python (Django) を使用して Web アプリケーションに取り組んでおり、本番環境にデプロイする際に MySQL と PostgreSQL のどちらが適しているかを知りたいです。

あるポッドキャストでJoel は、MySQL に問題があり、データに一貫性がないことを述べました。

誰かがそのような問題を抱えていたかどうか知りたいです。また、簡単に微調整できるパフォーマンスに関しては?

4

10 に答える 10

129

今後の読者への注意:以下のテキストは、2008 年 8 月に最後に編集されました。この編集の時点で、ほぼ 11 年前になります。ソフトウェアはバージョンごとに急速に変更される可能性があるため、以下のアドバイスに基づいて DBMS を選択する前に、それがまだ正確かどうかを調査してください。以下の新しい回答を確認してください。


より良い?

MySQL は、Web ホストによって提供されることがはるかに一般的です。

PostgreSQL は、はるかに成熟した製品です。

あなたの「より良い」質問に対処するこの議論があります

どうやら、この Web ページによると、MySQL は同時アクセス レベルが低く、書き込みよりも読み取りが多い場合に高速です。一方、負荷と書き込み/読み取り比率が増加すると、スケーラビリティが低下します。PostgreSQL は、同時実行レベルが低い場合は比較的低速ですが、負荷レベルの増加に応じて適切にスケーリングし、同時アクセス間の十分な分離を提供して、書き込み/読み取り比率が高い場合の速度低下を回避します。これらは条件に非常に敏感であるため、多くのパフォーマンス比較にリンクしています。

したがって、「どちらが速いか」が決定要因である場合、答えは「 場合によります。それが本当に重要な場合は、両方に対してアプリケーションをテストしてください。」各データベースで)、データベースからがらくたを調整してから選択します。優れたDBAの費用は驚くべきものです。そして、それらはすべての価値があります。

それが重要なとき。

おそらくそうではないので、サウンドが好きなデータベースを選択して、それを使用してください。より多くの RAM と CPU、より適切なデータベース設計、巧妙なストアド プロシージャ トリックなどを使用すると、より優れたパフォーマンスを購入できます。これらすべては、MySQL と PostgreSQL のどちらを選択するかで悩むよりも、random-website-X の方が安価で簡単です。 、および高価な DBA による専門的なチューニング。


Joel はまた、そのポッドキャストで、MySQL はくだらないものだと人々が言うので、コメントが戻ってきて彼を噛むだろうと言っていました.Joel は何count行も戻すことができませんでした. 逸話の複数形はデータではありません。 彼は言った

MySQL は、私のキャリアの中でプログラミングした唯一のデータベースであり、データの整合性の問題がありました。クエリを実行すると意味のない回答が返されますが、これは正しくありません。

そして彼はまた言った:

それは単なる逸話です。そして、それは実際、ブログやインターネット全般について私を苛立たせていることの 1 つです。[...] 逸話を真実にする奇妙な傾向があり、ブロガーとして、私はこれについて少し罪悪感を感じ始めています.

于 2008-08-26T05:14:50.690 に答える
15

数ヶ月後、ただチャイムを鳴らします。

2つのデータベースの地理的機能は、非常に異なります。PostgreSQLには例外的なPostGIS拡張機能があります。MySQLの地理的機能は、比較すると実質的にゼロです。

Webサービスにロケーションコンポーネントがある場合は、PostgreSQLを選択します。

于 2010-03-12T23:39:18.763 に答える
14

Django は使用していませんが、MySQL と PostgreSQL の両方を使用しています。データベースを Django のバックエンドとしてのみ使用する場合は、違いのほとんどが抽象化されるため、あまり問題になりません。PostgreSQL は、データ サイズ/クライアント数が増加しても、MySQL ほど速くレンガの壁にぶつからないため、もう少しスケーラブルです。

新しいシステムを実行している場合、本当の違いが現れます。次に、PostgreSQL をお勧めします。これには、DB レイヤーをよりカスタマイズ可能にする多くの機能があり、必要な要件に合わせて微調整できるからです。

于 2008-08-26T05:24:21.680 に答える
7

少し古くなっていますが、MySQL Gotchasページを読む価値があります。そこにリストされている項目の多くは、私の知る限り、まだ真実です.

私はPostgreSQLを使用しています。

于 2008-08-26T08:29:18.147 に答える
6

私は両方を幅広く使用しています。特定のプロジェクトに対する私の選択は、要約すると次のようになります。

  • ライセンス-アプリを配布しますか(IANAL)
  • 既存のインフラストラクチャとナレッジベース
  • あなたが持っていなければならない特別なソース

特別なソースとは、次のようなものを意味します。

  • 簡単/安価なレプリケーション=MySQL
  • 小さな結果を伴う巨大なデータセットの問題=PostgreSQL。言語拡張機能を使用し、非常に効率的なデータ操作を行います。(PL / Python、PL / TCL、PL / Perlなど)
  • R統計ライブラリとのインターフェース= debian/ubuntuで利用可能なPostgreSQLPL / R
于 2009-08-05T00:15:35.847 に答える
2

まあ、過去の開発 (ビルド、ステージング、本番) で別のデータベース ブランドを使用するべきではないと思います。

私が理解している方法から、PostgreSQLはより「正しい」データベース実装であり、mySQlはそれほど正確ではありませんが(準拠性が低くなります)、高速です。

したがって、CRUD アプリケーションをほとんど作成している場合は、mySQL が最適です。データベースから特定の機能が必要な場合 (よくわからない場合は必要ありません)、postgreSQL を検討することをお勧めします。

于 2008-08-26T05:14:25.247 に答える
1

さまざまなサーバーにかなり分散される可能性のあるアプリケーションを作成している場合、MySQL は移植性のために PostgreSQL よりも多くの重みを持っています。PostgreSQL は、少数ではありますが、満足のいく Web ホストとは言えない Web ホストで見つけるのは困難です。ほとんどの点で、特に最終的な微調整に関しては、PostgreSQL は MySQL よりも低速です。全体として、PostgreSQL を完全に回避するのではなく、短時間だけ試してから判断することをお勧めします。

于 2008-08-26T05:23:03.883 に答える
0

@ウルフマンドラゴン

PostgreSQL はオブジェクトを (ごくわずかに) サポートしていますが、本質的にリレーショナル データベースです。その概要ページから:

PostgreSQL は、強力なオープン ソースのリレーショナルデータベース システムです。

于 2008-10-10T02:34:37.840 に答える
0

ありがとうございました。MySQL で Django を使用しましたが、問題ありません。必要な機能に基づいてデータベースを選択してください。MySQL と Postgre を比較するのは難しい。Postgress と SQL Server を比較することをお勧めします。

于 2008-08-26T07:51:58.643 に答える
-2

MySQLはリレーショナルデータベース管理システムであり、PostgreSQLはオブジェクトリレーショナルデータベース管理システムです。PostgreSQLは、クエリの記述方法をより細かく制御できるため、C++またはJava開発者に適しています。ORDBMSは、オブジェクトとユーザー定義型も提供します。SQLクエリ自体は、MySQLよりもISO標準にはるかに近いものです。
ORDBMSまたはRDBMSが必要ですか?それはあなたの質問にもっとよく答えるでしょう。

于 2008-09-19T16:11:10.497 に答える