InnoDB vs. MyISAM - Fremdschlüssel vs. Volltextsuche
-
MyISAM (die Standard Speicherengine von MySQL) bietet eine sehr gute Volltextsuche, beherrscht allerdings lediglich “Table-Locking und keine “Fremdschlüssel”. Der InnoDB-Modus ist gerade für sehr große Tabellen von Vorteil, wegen der “Row-Locking” Option, hier funktionieren Fremschlüssel, Transaktionen aber keine Volltextsuche.
Eine theoretische Lösung dieses Problems könnte sein, die große Haupttabelle als InnoDB-Tabelle anzulegen und diese über einen Fremdschlüssel mit einer MyISAM-Tabelle zu referenzieren, in der dann der zu durchsuchende Text gespeichert wird.
SELECT * FROM tabellenname WHERE tabellenfeld LIKE ‘%suchbegriff1%’ OR tabellenfeld LIKE ‘%suchbegriff2%’
Ab MySQL Version Version 3.23.23
ALTER TABLE tabellenname ADD FULLTEXT (tex
tabellenfeld)
SELECT * FROM tabellenname WHERE MATCH tabellenfeld AGAINST (’suchbegriff1 suchbegriff2′)Glossar: MySQL Tabellen-Typen, Transaktion, Fremdschlüssel, MySQL-Volltextsuche, Tutorial (Volltextsuche mit MySQL)
Lesezeichen setzen - Thema: » Software & Entwicklung
Bitte ein Kommentar hinterlassen
Bitte anmelden um Kommentare zu schreiben.