0

私は、django、Sphinx、および MySQL を使用してシステムを構築していますが、これは非常に急速に大きくなっています。データベースには現在約 2000 行ありますが、数日でさらに 40,000 行を追加するプログラムを作成しました。データベースは現在稼働中であり、これほど多くの情報を含むデータベースを持ったことがないので、いくつか心配しています:

  1. これらすべての行を追加すると、django アプリの効率が大幅に低下しますか? もう一度やり直して、すべてのデータベース呼び出しを最適化して、より巧妙に処理する必要がありますか? または、これにより、データベースが遅くなり、何もできないほど遅くなりますか?

  2. 私の 40,000 行を嘲笑するなら、次の質問は、どの時点で心配する必要があるかということです。すぐにさらに数十万を追加する可能性が高いので、心配し、心配しています。

  3. スフィンクスはこのすべてについてどのように感じるでしょうか? このすべてのデータにインデックスを付ける必要があることに気付いたときに、びっくりするでしょうか? それとも大丈夫でしょうか?これは正常ですか?その場合、Sphinx にとってデータが多すぎることをどの時点で心配する必要がありますか?

ご意見ありがとうございます。

4

1 に答える 1

1

通常のクエリの場合、2000 行は何もありません。テーブル全体をメモリにキャッシュできるため、インデックスがなくても非常に高速です。ほとんどの状況では 100000 行でも問題なく動作するはずですが、適切なインデックスがない場合、またはクエリが利用可能なインデックスを使用していない場合は、今では気付くでしょう。正しくインデックスします。しかし、問題を解決するのにそれほど時間はかかりません。遅いクエリに対して EXPLAIN を実行し、遅い理由を確認し、必要なインデックスを見つけてください。

数百万行または数千万行に到達するまでに、データベースの設計とインデックス戦略についてより慎重に検討する必要があります。正しく行えば、テーブルに何億もの行を含めることができます。

于 2010-04-22T06:33:58.533 に答える