Mysql
 sql >> база данни >  >> RDS >> Mysql

Най-добрият тип индексиране, когато има клауза LIKE

Да, това, което имате тук, е убиец на база данни

Индексът на B-дърво може да се използва за сравнения на колони в изрази, които използват операторите =,>,>=, <, <=или BETWEEN. Индексът може да се използва и за сравнения LIKE, ако аргументът на LIKE е постоянен низ, който не започва със заместващ знак.

Източник:http://dev.mysql.com /doc/refman/5.7/en/index-btree-hash.html

Това означава, че вашата заявка LIKE не може да използва индекса и тогава имате две харесвания, свързани с ИЛИ. Ако това не е достатъчно, вие сте добавили и НЕ В сравнение.

Но за щастие вторият израз LIKE не е толкова лош, не започва с заместващ знак. Така че най-добрата ви надежда е да създадете съставен индекс на usage_guidance, name

Ако можете да публикувате своя SHOW CREATE TABLE и няколко реда примерни данни + очаквания изход, може да получим представа дали има начин да пренапишем тази заявка.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете най-новия набор от датирани записи от таблица на mysql

  2. MySQL - Изваждане на стойност от предишния ред, групиране по

  3. Генерирайте целочислена последователност в MySQL

  4. Как да накарам UTF-8 да работи в уеб приложения на Java?

  5. MySQL Премахване на дублиращи се записи