Lihat tautan di bawah ini untuk detail lebih lanjut
https://dev.mysql.com/doc /refman/8.0/en/table-scan-avoidance.html
penyebab pemindaian tabel lengkap ada di bawah
-
Tabel sangat kecil sehingga lebih cepat untuk melakukan pemindaian tabel daripada repot dengan pencarian kunci. Ini umum untuk tabel dengan kurang dari 10 baris dan panjang baris pendek.
-
Tidak ada batasan yang dapat digunakan dalam klausa ON atau WHERE untuk kolom yang diindeks.
-
Anda membandingkan kolom yang diindeks dengan nilai konstan dan MySQL telah menghitung (berdasarkan pohon indeks) bahwa konstanta menutupi sebagian besar tabel dan bahwa pemindaian tabel akan lebih cepat
-
Anda menggunakan kunci dengan kardinalitas rendah (banyak baris cocok dengan nilai kunci) melalui kolom lain. Dalam hal ini, MySQL mengasumsikan bahwa dengan menggunakan kunci tersebut mungkin akan melakukan banyak pencarian kunci dan bahwa pemindaian tabel akan lebih cepat.
untuk menghindari pemindaian tabel lengkap gunakan di bawah ini:
-
Gunakan ANALYZE TABLE tbl_name untuk memperbarui distribusi kunci untuk tabel yang dipindai.
-
Gunakan FORCE INDEX untuk tabel yang dipindai untuk memberi tahu MySQL bahwa pemindaian tabel sangat mahal dibandingkan dengan menggunakan indeks yang diberikan:
misalnya PILIH * DARI t1, t2 FORCE INDEX (index_for_column)WHERE t1.col_name=t2.col_name;