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 (textabellenfeld)
    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
  • 17.03.09
  • Autor: Igor Gaffling
  • Jetzt kommentieren

Bitte ein Kommentar hinterlassen

Bitte anmelden um Kommentare zu schreiben.


Suchmaschinenoptimierung Allgemeinwissen und Lexikon Masterseek.de B2B Suchmaschine SEMPro