pilih count(*) sebagai agregat daripada `call_records` di mana (`CallType` = 'dialout' dan `CalledNo` = '12345678910');
Bagaimana untuk mengoptimumkan pertanyaan ini? Premisnya ialah indeks tidak boleh dibuat, kerana sudah terdapat beberapa indeks dalam jadual ini, yang mungkin menyebabkan jadual dikunci.
Adakah ia data panas? Jika tidak, buat sahaja skrip untuk dijalankan dengan kerap dan simpan kiraan statistik ke dalam jadual statistik lain.
Untuk data panas, lihat jika indeks yang anda bina sebelum ini boleh ditukar menjadi indeks gabungan, kerana pokok B bermula dari kiri Jika anda membina satu (a, b, c), a dan a, b dan a, b, dan c boleh digunakan, fungsi pertanyaan pada lapisan kod memberi perhatian kepada susunan medan.
Optimalkan semula indeks Terdapat terlalu banyak indeks tunggal, jadi cuba bina indeks bersama. Jika statistik ini tidak memerlukan prestasi masa nyata, gunakan md5 (penyata sql) sebagai kunci, gunakan hasilnya sebagai nilai dan simpannya dalam cache (redis).