検索

ホームページ  >  に質問  >  本文

php - mysqlクエリの最適化の問題?

(`CallType` = 'dialout' および `CalledNo` = '12345678910') の `call_records` から集計として count(*) を選択します;

このクエリを最適化するにはどうすればよいですか?このテーブルにはすでに複数のインデックスが存在するため、インデックスを作成できないことが前提となっており、テーブルがロックされる可能性があります。

大家讲道理大家讲道理2749日前507

全員に返信(2)返信します

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:10:33

    ホットデータですか? そうでない場合は、定期的に実行するスクリプトを作成し、統計カウントを別の統計テーブルに保存します。
    ホット データの場合は、以前に構築したインデックスを結合インデックスに変換できるかどうかを確認します。B ツリーは左から始まるため、(a、b、c)、a と a、b と a、を構築すると、 b および c を使用する場合、コード層のクエリ関数はフィールドの順序に注意を払います。

    返事
    0
  • PHPz

    PHPz2017-05-16 13:10:33

    インデックスを再最適化します。単一インデックスが多すぎるため、結合インデックスを構築してみてください。この統計にリアルタイムのパフォーマンスが必要ない場合は、md5 (SQL ステートメント) をキーとして使用し、結果を値として使用し、キャッシュ (redis) に保存します。

    返事
    0
  • キャンセル返事