最近、MySQL InnoDB から PostgreSQL にプロジェクトを切り替えましたが、ajax でデータを挿入および更新する際のラグが大きくなったと感じています。これは主観的かもしれません。Django 開発者が postgres を推奨していることは知っていますし、psycopg2 は MysqlDB よりも高速であるはずであることも知っています。個人的には、postgres がデータベースの整合性を確保する方法が気に入っていますが、このプロジェクトのパフォーマンスが最も心配です。これについて他の人の意見を聞きたいです。
4 に答える
インデックスの使い方が間違っている可能性があります。適切なインデックスがあることを確認し、テーブルが定期的に分析され、バキュームされていることを確認するだけで、かなり適切な結果が得られます。
場合によっては、Postgres がわずかに遅いことが判明したとしても、私の個人的な意見では、Postgres が提供する機能は、わずかなパフォーマンスの低下を大幅に上回っています。
Postgres は実に美しいデータベースであり、他のものを使用するときはいつでも、Postgres を使用していればよかったと思います。
前回のプロジェクトの開発段階で初めて SQLite を使用しました。セットアップが簡単で、ある開発システムから別の開発システムに持ち運ぶのに便利です。最終的にプロジェクトを MySQL の本番環境に移行したときに、MySQL には存在しなかった多くの微妙な問題が明らかになったことを付け加えておきます。まったくSQLiteで。大したことはありませんが、今後 MySQL にプロジェクトを展開する必要がある場合は、開発段階でも MySQL を使用することをお勧めします。
なんで測らないの?それがパフォーマンスを確認する唯一の方法です。確実なデータがないのにどれだけ遅いかについて手を振ることは、手で水をつかもうとするようなものです。
The Grinder (Jython でスクリプト化可能) のような Web サーバー ストレス ツールを MySQL バックエンドと PostgreSQL の両方で使用して、1 秒あたりのトランザクション数、または 1 秒あたりのリクエスト数を測定し、後でそれが違いを生むかどうかを確認します。もしそうなら、ここで質問するか、より具体的には、pgsql-general または pgsql-performance メーリング リストで質問してください。主な開発者でさえ、それについて多くのことを知っている専門家がたくさんいます。PostgreSQL の構成には、パフォーマンスに関連する多くのノブがあります。
SQLite。バックエンド サーバーはありません。開発者に最適