0

すべてのテーブルで InnoDB を使用し、sphinx sql_range_step を最小値の 128 に設定しました。これによりパフォーマンスが大幅に向上しましたが、新しいステップの開始直後にリクエストを行うと、それでも非常に遅くなります。

範囲ステップを 10 か何かに減らすことができれば問題なく動作すると確信していますが、最小値がハードコードされており、それを変更する方法がないことを誰かが発見しました (ソースを編集する以外に)。

そこで、MySQL から直接これを処理する方法があるかどうか疑問に思っていました。データベースのインデックスを作成しても、他のデータベースは影響を受けないため、速度が低下したのはサーバー全体ではなく、インデックスを作成しているデータベースだけです。

ユーザーやクエリなどの優先度を下げる方法はありますか?

4

1 に答える 1

1

最初に、SQL クエリsql_queryと sql_query_range を最適化してみてください。また、sql_ranged_throttleを介してインデックス作成中にクエリを調整できます。たとえば、1000 に設定すると、各範囲クエリの前に 1 秒 (1000 ミリ秒) の遅延が発生します。

于 2011-04-18T21:54:30.183 に答える