Ini agak sulit untuk dijelaskan.
Kueri yang menggunakan indeks menggunakannya karena indeks adalah indeks "penutup". Artinya, semua kolom dalam indeks ada dalam kueri. Satu-satunya bagian dari indeks yang benar-benar digunakan secara efektif adalah kondisi pada latitude
.
Biasanya indeks penutup akan memiliki hanya kolom yang disebutkan dalam kueri. Namun, kunci utama digunakan untuk mereferensikan catatan, jadi saya menduga bahwa users.Id
adalah kunci utama di atas meja. Dan indeks sedang dipindai untuk nilai yang valid dari latitude
.
Kueri yang tidak menggunakan indeks tidak menggunakannya karena dua alasan. Pertama, kondisi pada kolom adalah pertidaksamaan. Pencarian indeks hanya dapat menggunakan kondisi kesetaraan dan satu ketidaksetaraan. Itu berarti indeks hanya dapat digunakan untuk latitude
dalam metodenya yang paling efektif. Kedua, kolom tambahan dalam kueri harus tetap membuka halaman data.
Dengan kata lain, pengoptimal sebenarnya mengatakan:"Mengapa repot-repot pergi ke indeks untuk memindai indeks dan kemudian memindai halaman data? Sebaliknya, saya hanya dapat memindai halaman data dan mendapatkan semuanya sekaligus."
Pertanyaan Anda berikutnya tidak diragukan lagi:"Tetapi bagaimana cara membuat kueri saya lebih cepat?" Saran saya adalah menyelidiki indeks spasial .