MySQL Texte intégral Recherche et index Mysql

Image representing MySQL as depicted in CrunchBase

Il y a quelque temps j'ai écrit MySQL Texte intégral Recherche Aujourd'hui, je 🙂 eu une expérience très intéressante avec une application. En général, les recherches d'application pour des résultats qui ne possède pas une autre table. Sélectionnez un principal et un sélectionner dans la partie WHERE de l'application. En général et squelette

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

demande fondamentalement simple. Je l'ai écrit pour 30 sec l'exécuter, et bloqué la machine. Après une longue et attendant patiemment de ma part ou juste ~ 43 sec . Il a craché résultat lol . pfff madhouse. Processeur Connexion look de la machine est normalement occupée état presque inactif. Choc et crainte. Replay demande à nouveau le même résultat. putain WTF. Exécuter expliquer la demande et tout rayonnait – secondTextField deuxième champ uniquement recherche en texte intégral indice без, et il y a un plateau modeste d'environ 35K lignes. qui a lu – recherche en texte intégral не е индекс. problème déjà clair rapidement un

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

Et les choses se mettaient en place la requête a 0.0005 sec 😀

Soyez prudent lorsque vous mettez les indices d'entre eux dépendent de votre demande de taux marginal.

p.s Je suis accroché ensemble sur la situation supérieure non seulement parce qu'il n'y a pas d'index, mais parce que ne pas utiliser la méthode de recherche en texte intégral 😀

Amélioré par Zemanta

Laisser une Réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont marqués *

Anti-SPAM *