Anda mungkin akan lebih baik membiarkan MySql memutuskan rencana kueri. Ada kemungkinan besar bahwa melakukan pemindaian indeks akan kurang efisien daripada pemindaian tabel penuh.
Ada dua struktur data pada disk untuk tabel ini
- Tabel itu sendiri; dan
- Indeks B-Tree kunci utama.
Saat Anda menjalankan kueri, pengoptimal memiliki dua opsi tentang cara mengakses data:
SELECT * FROM userapplication WHERE application_id > 1025;
Menggunakan Indeks
- Pindai indeks B-Tree untuk menemukan alamat semua baris di mana
application_id > 1025
- Baca halaman tabel yang sesuai untuk mendapatkan data untuk baris ini.
Tidak menggunakan Indeks
Pindai seluruh tabel, dan pilih catatan yang sesuai.
Memilih strategi terbaik
Tugas pengoptimal kueri adalah memilih strategi yang paling efisien untuk mendapatkan data yang Anda inginkan. Jika ada banyak baris dengan application_id > 1025
maka sebenarnya bisa kurang efisien menggunakan index. Misalnya jika 90% dari catatan memiliki application_id > 1025
maka pengoptimal kueri harus memindai sekitar 90% simpul daun dari indeks b-tree dan kemudian membaca setidaknya 90% tabel juga untuk mendapatkan data aktual; ini akan melibatkan membaca lebih banyak data dari disk daripada hanya memindai tabel.