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

Как да ускоря SELECT .. LIKE заявките в MySQL на множество колони?

Индексът не би ускорил заявката, тъй като за текстовите колони индексите работят чрез индексиране на N знака, започвайки отляво. Когато направите LIKE '%text%', той не може да използва индекса, защото може да има променлив брой знаци преди текста.

Това, което трябва да правите, е изобщо да не използвате такава заявка. Вместо това трябва да използвате нещо като FTS (пълно текстово търсене), което MySQL поддържа за MyISAM таблици. Също така е доста лесно сами да направите такава система за индексиране за таблици, които не са MyISAM, просто имате нужда от отделна индексна таблица, където съхранявате думите и съответните им идентификатори в действителната таблица.

Актуализиране

Налично е пълно текстово търсене за InnoDB таблици с MySQL 5.6+.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на уеб приложение от нулата с помощта на Python Flask и MySQL:Част 2

  2. Как да създадете таблица в MySQL Workbench с помощта на GUI

  3. Мигрирайте база данни от Postgres към MySQL

  4. Как работи функцията POSITION() в MySQL

  5. Mysql select recursive get all child с множество нива