Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL VOLLTEXT-Suche über>1 Tabelle hinweg

Treten Sie nach den Filtern bei (z. B. den Ergebnissen beitreten), versuchen Sie nicht, beizutreten und dann zu filtern.

Der Grund dafür ist, dass Sie Ihren Volltextindex nicht mehr nutzen können.

Klarstellung als Antwort auf den Kommentar:Ich verwende das Wort Join hier allgemein, nicht als JOIN sondern als Synonym für verschmelzen oder kombinieren.

Ich sage im Wesentlichen, dass Sie die erste (schnellere) Abfrage oder etwas Ähnliches verwenden sollten. Der Grund dafür, dass es schneller ist, ist, dass jede der Unterabfragen so übersichtlich ist, dass die Datenbank den Volltextindex dieser Tabelle verwenden kann, um die Auswahl sehr schnell durchzuführen. Das Verbinden der beiden (vermutlich viel kleineren) Ergebnismengen (mit UNION ) ist auch schnell. Das Ganze geht also schnell.

Die langsame Version läuft am Ende durch viele Daten und testet sie, um zu sehen, ob es das ist, was Sie wollen, anstatt die Daten schnell zu filtern und nur die Zeilen zu durchsuchen, die Sie wahrscheinlich wirklich wollen.