Warum unterstützt MyISAM die FULLTEXT-Suche und InnoDB nicht?


7

Ich kenne die grundlegenden Unterschiede zwischen den MyISAM- und InnoDB-Engines. In MySQL 5.6 Beta unterstützt InnoDB die Volltextsuche. Aber ich frage mich, warum frühere Versionen von InnobDB FTS nicht unterstützten. Ich vermute, dass das Tabellenspeicherformat oder die Art und Weise, wie Daten indiziert werden. Entschuldigung für meine Unwissenheit.

Antworten:


2

Früher haben die Leute nach FTS für InnoDB verlangt und fieberhaft nach Problemumgehungen gesucht . Irgendwann im Januar 2005 fand InnoDB einen Sponsor, der nach einem Entwickler suchte .

Ich bin sicher, eines der größten Probleme, über die sich Entwickler Sorgen machten, war, dass FULLTEXT Searching (FTS) im Einklang mit Transaktionen funktioniert. Dies ist insbesondere erforderlich, da die Tokenisierung für eingefügte Zeichenfolgen nur zum Festschreibungszeitpunkt ausgeführt wird, sodass bei einer Volltextsuche die nicht festgeschriebenen Daten nicht angezeigt werden.

Bitte beachten Sie, dass MySQL 5.6 , obwohl es Tutorials zu FTS mit InnoDB gibt , immer noch ein oder zwei Fehler für InnoDB / FTS hat .


Ich freue mich sehr über Ihre Antwort, aber können Sie mehr zu diesem Satz erklären: "Dies ist besonders erforderlich, da die Tokenisierung für eingefügte Zeichenfolgen nur zum Festschreibungszeitpunkt durchgeführt wird, sodass bei einer Volltextsuche die nicht festgeschriebenen Daten nicht angezeigt werden." Ich verstehe nicht wirklich :).
Hungneox

2
@eureka - Wenn Sie in ein Zeichenfolgenfeld einfügen, erkennt FTS es erst, wenn es im Grunde festgeschrieben ist.
JNK

0

Eine Alternative besteht darin, zwei mit InnoDB und MyISAM synchronisierte Tabellen zu verwenden. In der zweiten Tabelle könnten wir eine Funktion durchsehen und die Daten aus der ersten Tabelle zurückgeben. Es ist ein Beispiel hier


Bitte posten Sie in Englisch
a_horse_with_no_name

Juan, wenn Sie die Frage auf Englisch lesen können, können Sie sie wahrscheinlich besser auf Englisch beantworten als Google Translate mit Ihrem Spanisch (?): Bitte überprüfen Sie die Antwort und verbessern Sie sie, indem Sie möglicherweise einen Link in englischer Sprache bereitstellen.
Jack sagt, versuchen Sie es mit topanswers.xyz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.