Mysql
 sql >> Base de données >  >> RDS >> Mysql

Qu'est-ce qui est le plus rapide - INSTR ou LIKE ?

Les recherches FULLTEXT vont absolument être plus rapides, comme kibibu l'a noté dans les commentaires ci-dessus.

Cependant :

mysql> select COUNT(ID) FROM table WHERE INSTR(Name,'search') > 0;
+-----------+
| COUNT(ID) |
+-----------+
|     40735 | 
+-----------+
1 row in set (5.54 sec)

mysql> select COUNT(ID) FROM table WHERE Name LIKE '%search%';
+-----------+
| COUNT(ID) |
+-----------+
|     40735 | 
+-----------+
1 row in set (5.54 sec)

Dans mes tests, ils fonctionnent exactement de la même manière. Ils sont tous deux insensibles à la casse et effectuent généralement des analyses complètes de la table, un non-non général lorsqu'il s'agit de MySQL hautes performances.

Sauf si vous faites une recherche de préfixe sur une colonne indexée :

mysql> select COUNT(ID) FROM table WHERE Name LIKE 'search%';
+-----------+
| COUNT(ID) |
+-----------+
|         7 | 
+-----------+
1 row in set (3.88 sec)

Dans ce cas, le LIKE avec seulement un joker de suffixe est beaucoup plus rapide.