(`CallType` = 'dialout' および `CalledNo` = '12345678910') の `call_records` から集計として count(*) を選択します;
このクエリを最適化するにはどうすればよいですか?このテーブルにはすでに複数のインデックスが存在するため、インデックスを作成できないことが前提となっており、テーブルがロックされる可能性があります。
给我你的怀抱2017-05-16 13:10:33
ホットデータですか? そうでない場合は、定期的に実行するスクリプトを作成し、統計カウントを別の統計テーブルに保存します。
ホット データの場合は、以前に構築したインデックスを結合インデックスに変換できるかどうかを確認します。B ツリーは左から始まるため、(a、b、c)、a と a、b と a、を構築すると、 b および c を使用する場合、コード層のクエリ関数はフィールドの順序に注意を払います。
PHPz2017-05-16 13:10:33
インデックスを再最適化します。単一インデックスが多すぎるため、結合インデックスを構築してみてください。この統計にリアルタイムのパフォーマンスが必要ない場合は、md5 (SQL ステートメント) をキーとして使用し、結果を値として使用し、キャッシュ (redis) に保存します。