大規模なデータベースで構成される PHP Web プロジェクトを作成しようとしています。データベースは MYSQL になり、1 日あたり 30000 を超えるレコードが保存されます。DB を最適化するには、MEMCACHED ライブラリを使用すると考えました。私は正しい道を進んでいますか、それとも他の代替手段を使用してデータ最適化の問題を克服できますか。より高速な検索と挿入を提供したいだけです。データは徐々に高速で増加するため、どのツールをどのように使用すればよいか誰か教えてもらえますか? オブジェクト リレーショナル マッピングの概念も使用する必要がありますか?
2 に答える
私は @halfer の側に立ち、テスト データについては彼が正しいと言いたいです。少なくとも、最適化する必要のないものを最適化しようとしていないことがわかります。
テスト データに加えて、運用環境のトラフィック パターンを模倣するためのテスト シナリオも必要になります。これは難しい部分であり、正確なアプリケーション パターン (1 秒あたりの読み取り数、書き込み数、更新数) に大きく依存します。
あなたの数値 (30k) を考えると、平均して約 3 挿入/秒で、最も安価なマシンでも簡単に処理できると思います。読み取りに関しては、1 年分のデータは 1,100 万レコード弱になります。ルックアップが遅くなった場合は、データ (mysql レベルまたはアプリケーション レベル) をパーティション分割することをお勧めしますが、そのような比較的小さなボリュームで必要になるとは思えません。本当の違いは、読み取りの数が挿入の数の 1000 倍である場合、@ram sharma が提案したことを調べて、マスターがすべての書き込みを取得し、スレーブが読み取り専用。
Memcached は、正しく使用すると強力な獣であり、低速の DB ディスク読み取りを非常に高速なメモリ読み取りに変えることができます。DBが遅すぎる場合にのみ、調査することをお勧めします。アプリケーションに可動部分を追加すると、潜在的な障害点が増え、全体的な複雑さが増します。
編集:ORMの使用に関しては、それはあなたの選択であり、エンドユーザーに数ミリ秒の分数を追加する可能性がありますが、実際にはDBの速度に関することは変わりません..通常、私の経験では価値があります。
乾杯 -