bekay
Mitglied
Nehmen wir an, ich hab zwei Tabellen, einmal eine Film-Tabelle und einmal eine Artikel-Tabelle, hier mal eine vereinfachtes Spalten-Schema
--> ID ist der Primärschlüssel, Regie hat einen Fulltext-Index, für eine schnelle UTF8-Suche. In dieser Datenbank habe ich 10.000 Filme gespeichert - natürlich mit noch mehr Spalten/Infos, das ist aber unwichtig für das Beispiel.
--> In dieser Tabelle sind Artikel von bestimmen Autoren (Name und Link) zu einem gewissen Film (ID --> Verbindung zur Film-Tabelle) gespeichert. Hier gibt es 30.000 Einträge.
Die einfache Volltext-Suche in der Film-Tabelle, z.B. nach einem Regisseur geht schnell von statten:
--> 0.0008 sek.
Suche ich hingegen nach den Artikeln, die von einem bestimmten Autoren nur über Spielberg-Filme verfasst wurden, greife ich auf JOIN zurück:
--> 2.6145 sek.
2,5 Sekunden für eine relativ einfach Anfrage! Irgendwie muss ich da was falsch machen, bei der Verbindung der Volltext-Suche mit der JOIN-Funktion. Kann ich die Performance verbessern?
Code:
| ID | Titel | Regie |
Code:
| ID | Name | Link |
Die einfache Volltext-Suche in der Film-Tabelle, z.B. nach einem Regisseur geht schnell von statten:
Code:
SELECT * FROM `film` WHERE MATCH (regie) AGAINST ('+spielberg' IN BOOLEAN MODE)
Suche ich hingegen nach den Artikeln, die von einem bestimmten Autoren nur über Spielberg-Filme verfasst wurden, greife ich auf JOIN zurück:
Code:
SELECT * FROM artikel INNER JOIN film ON
(artikel.ID=film.ID)
WHERE artikel.name='ein Autor'
AND MATCH (film.regie) AGAINST ('+spielberg' IN BOOLEAN MODE)
2,5 Sekunden für eine relativ einfach Anfrage! Irgendwie muss ich da was falsch machen, bei der Verbindung der Volltext-Suche mit der JOIN-Funktion. Kann ich die Performance verbessern?
Zuletzt bearbeitet: