web-dev-qa-db-ja.com

PostgresとMySQL:どちらをスケールアウトするのが難しいですか?

あなたの経験から、どのデータベースサーブを拡張するのがより難しいですか? MySQLまたはPostgres? MySQLには、すぐに使用できるスケーリング/クラスタリング機能がいくつかあることは知っていますが、Postgresにはすぐに使用できる機能はありません。 CMIIW。

[〜#〜]編集[〜#〜]

ここで混乱して申し訳ありませんが、私の質問はスケールアウト(水平スケーリング)、つまりクラスタリング、シャーディングなどについてです。どちらも水平方向にスケーリングできることは知っていますが、どちらを実装する方が簡単ですか?

共有してくれてありがとう。

8
Joshua Partogi

MySQLはスケールアウトが非常に簡単で、クラスタリングとレプリケーションはネイティブであり、管理と実装が非常に簡単です(データベースの知識がまったくない人でも)。

PostgreSQLは現在のところ基本的なレプリケーションのみをサポートしており、クラスタリングについて公式なものは何もありません(技術的にはサードパーティのツールを介して実行できますが、管理するのは大変です)。

スケールアウトする予定がある場合は、Postgresqlを選択することはありません。

編集:postgresとmysqlがこれに答えられてから大きく変わったので、非常に古い答えは一粒の塩で取ります。

1
Kedare

この質問は、サイトの「主観的または議論的な質問をするのを避ける」という信条に反するように見えますが、私は答えを試すことに抵抗することはできません。

場合によります。

非常に大きなデータセットに拡張できる単一のサーバー構成について話しているのですか?
データセットによっては、どちらもこの状況で機能しますが、カスタム構成と適切な計画がないと、どちらもうまく機能しない可能性があります。書き込みが多い大規模なデータセットで作業したときの私の経験では、Postgresにはブロッキングを引き起こす条件が少なく、全体的なパフォーマンスが優れていることがわかりました。

多くの読者のために多くのスレーブに拡張できるマルチサーバー構成について話しているのですか?
MySQLは、非同期レプリケーションが組み込まれているため、歴史的にこの分野のリーダーと見なされてきました。最新のDBソフトウェアの使用に反対しない限り、これはもはや当てはまりません。 Postgresには、9.0のリリースでこれが組み込まれています。 MySQLのレプリケーションに関する私の経験は、この時点まで十分すぎるほどです。

多くのライターの多くのマスターに拡張できるマルチサーバー構成について話しているのですか?
これは、どちらの製品を拡張する場合でも断然最も難しい方法であり、フェイルオーバーサーバーを使用することで何度も回避できます。マスターサーバーの高可用性を実現するために本当にスケールアウトする必要がある場合は、アドオン/代替インストールを回避できません。 MySQLの場合、 オープンソースオプション または 商用バージョン のMySQL ClusterNDBがあります。 Postgresの場合、さまざまなレベルのHAとプーリングを取得できる多くの addons があります

長期的には、データベースのスケーリングは通常、設計計画に帰着します。アプリケーションがスケールを念頭に置いて設計されている場合は、多くの場合、開発者に最適なdbシステムが最良の選択です。

8
Ed.

PostGreにはより多くの機能と構成オプションがあります。

したがって、スケーリングがより困難になる可能性がありますが、適切に構成されている場合は、より適切にスケーリングされる可能性もあります。

一般的に、MySQLはおそらくまだ高速ですが、本当の問題は、データの整合性をどの程度重視し、どの機能が必要であり、Oracle(現在はMySQLを所有)に依存したいのかということです。

また、GPLでアプリケーションを公開したくないという理由だけで、本当にMySQLライセンスを購入したいのかなど、ライセンスに関する質問があります。
PostGreSQLでは、これは問題ありません。これは非常に大きなプラスです。

3
Quandary