SELECT * FROM city FORCE INDEX(idx_fk_country_id) ORDER BY country_id;
Itu sahaja, jika anda menanyakan lajur selain daripada indeks dalam SELECT, maka ORDER BY tidak akan menggunakan indeks. Anda boleh menggunakan FORCE INDEX untuk memaksa penggunaan indeks. SELECT中查询了索引建以外的列,那么ORDER BY就不会使用索引了。你可以用FORCE INDEX来强制使用索引。
Perkara lain ialah indeks penutup yang dipanggil. Takrif indeks penutup ialah: MySQL boleh mengembalikan medan select berdasarkan indeks tanpa menanyakan semula fail berdasarkan indeks untuk mendapatkan hasilnya. #🎜🎜#
#🎜🎜#Apabila anda menggunakan select *, anda tidak memaksa indeks untuk ditentukan, kemudian mysql menanyakan fail untuk mendapatkan medan pertanyaan anda, dan kemudian melaksanakan operasi pengisihan ini tidak menggunakan indeks penutup. Dan jika anda menggunakan force index, ia akan memaksa penggunaan covering index, supaya filesort tidak akan berlaku. #🎜🎜#
City_id anda ialah kunci utama dan country_id ialah kunci utama komposit.
ditukar kepada
Itu sahaja, jika anda menanyakan lajur selain daripada indeks dalam
SELECT
, makaORDER BY
tidak akan menggunakan indeks. Anda boleh menggunakanFORCE INDEX
untuk memaksa penggunaan indeks.SELECT
中查询了索引建以外的列,那么ORDER BY
就不会使用索引了。你可以用FORCE INDEX
来强制使用索引。还有一点,就是所谓的覆盖索引。覆盖索引的定义是:MySQL可以根据索引返回
select
字段而不用根据索引再次查询文件而得出结果。当你使用
Perkara lain ialah indeks penutup yang dipanggil. Takrif indeks penutup ialah: MySQL boleh mengembalikan medanselect *
时,你没有强制指定索引,那么mysql
为了得到你的查询的字段而查询文件,然后再进行排序操作,这就没有用到覆盖索引。而你使用了force index
就会强制使用覆盖索引,这样就不会出现filesort
select
berdasarkan indeks tanpa menanyakan semula fail berdasarkan indeks untuk mendapatkan hasilnya. #🎜🎜# #🎜🎜#Apabila anda menggunakanselect *
, anda tidak memaksa indeks untuk ditentukan, kemudianmysql
menanyakan fail untuk mendapatkan medan pertanyaan anda, dan kemudian melaksanakan operasi pengisihan ini tidak menggunakan indeks penutup. Dan jika anda menggunakanforce index
, ia akan memaksa penggunaan covering index, supayafilesort
tidak akan berlaku. #🎜🎜#