2010-08-10 7 views

Répondre

0
EXPLAIN SELECT * FROM articles WHERE title LIKE '%query%' AND user_id=123 

qui racontera tout :)

0

MySQL utilisera presque certainement l'indice user_id.

Pour les requêtes en général, l'optimiseur élabore les chemins d'accès possibles et utilise des statistiques précalculées sur le contenu de la table pour estimer lequel sera le plus rapide.

Par exemple, si vos articles tables avaient également une colonne de date article_date qui a été indexé et que vous avez exécuté une requête avec prédicats sur les deux user_id et article_date. Ensuite, MySQL devra estimer quel index sera le plus rapide pour sélectionner les lignes requises.

S'il y a des milliers d'articles par jour par beaucoup d'utilisateurs différents, alors l'index user_id pourrait être meilleur. Mais s'il n'y a que quelques articles par jour, mais que la plupart des utilisateurs publient un grand nombre d'articles, il peut être plus rapide d'utiliser l'index article_date à la place.