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

Nejlepší typ indexování, pokud existuje klauzule LIKE

Jo, to, co tu máte, je zabiják databází

Index B-stromu lze použít pro porovnávání sloupců ve výrazech, které používají operátory =,>,>=, <, <=nebo BETWEEN. Index lze také použít pro porovnání LIKE, pokud je argument LIKE konstantní řetězec, který nezačíná zástupným znakem.

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

To znamená, že váš dotaz LIKE nemůže použít index a pak máte dvě lajky spojené s OR. Pokud to nestačí, přidali jste také srovnání NOT IN.

Ale naštěstí druhý výraz LIKE není tak špatný, nezačíná na zástupný znak. Takže vaší největší nadějí je vytvořit složený index na usage_guidance, name

Pokud byste mohli zveřejnit svou SHOW CREATE TABLE a několik řádků ukázkových dat + očekávaný výstup, mohli bychom získat nápad, zda existuje způsob, jak tento dotaz přepsat.




  1. Automatizujte úlohy zálohování a údržby pomocí plánu údržby na serveru SQL Server

  2. Jak přejmenovat databázi v MySQL

  3. SQL Natural Join

  4. Jak povolit všechna omezení kontroly v databázi SQL Server - SQL Server / Výukový program TSQL, část 88