Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jenis pengindeksan terbaik ketika ada klausa LIKE

Ya, apa yang Anda miliki di sini adalah pembunuh basis data

Indeks B-tree dapat digunakan untuk perbandingan kolom dalam ekspresi yang menggunakan operator =,>,>=, <, <=, atau BETWEEN. Indeks juga dapat digunakan untuk perbandingan LIKE jika argumen ke LIKE adalah string konstan yang tidak dimulai dengan karakter wildcard.

Sumber:http://dev.mysql.com /doc/refman/5.7/en/index-btree-hash.html

Jadi itu berarti kueri LIKE Anda tidak dapat menggunakan indeks dan kemudian Anda memiliki dua suka yang terhubung dengan OR. Jika itu tidak cukup, Anda telah memasukkan perbandingan NOT IN juga.

Tapi untungnya, ekspresi LIKE kedua tidak terlalu buruk, tidak dimulai dengan wildcard. Jadi harapan terbaik Anda adalah membuat indeks komposit pada usage_guidance, name

Jika Anda dapat memposting SHOW CREATE TABLE dan beberapa baris data sampel + keluaran yang diharapkan, kami mungkin mendapatkan ide jika ada cara untuk menulis ulang kueri ini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara untuk mengambil ID peningkatan otomatis dari pernyataan yang disiapkan

  2. Cara Membatasi Hasil di MySQL, PostgreSQL, dan SQLite

  3. Pernyataan yang disiapkan, `WHERE .. IN(..)` query dan sorting — dengan MySQL

  4. Gabungkan Beberapa baris anak menjadi satu baris MYSQL

  5. PEMBARUAN MySQL:5 Tip Teratas untuk Pengembang T-SQL