sql >> Databáze >  >> RDS >> Mysql

Jak zrychlit SELECT .. LIKE dotazy v MySQL na více sloupcích?

Index by neurychlil dotaz, protože pro textové sloupce indexy fungují tak, že indexují N znaků počínaje zleva. Když uděláte LIKE '%text%', nemůže použít index, protože před textem může být proměnný počet znaků.

To, co byste měli udělat, je nepoužívat takový dotaz vůbec. Místo toho byste měli použít něco jako FTS (Full Text Search), které MySQL podporuje pro tabulky MyISAM. Je také docela snadné vytvořit si takový systém indexování sami pro tabulky, které nejsou MyISAM, stačí vám samostatná indexová tabulka, kde budete ukládat slova a jejich relevantní ID ve skutečné tabulce.

Aktualizovat

Fulltextové vyhledávání dostupné pro tabulky InnoDB s MySQL 5.6+.



  1. Řetězce vlastního formátu data a času Podporováno FORMAT() na serveru SQL Server

  2. Zamykání a výkon

  3. jak vytvořit tabulku v oracle

  4. Export databáze SQLite do souboru XML