web-dev-qa-db-ja.com

MyISAMがフルテキスト検索をサポートし、InnoDBがサポートしないのはなぜですか?

MyISAMエンジンとInnoDBエンジンの基本的な違いを知っています。 MySQL 5.6ベータでは、InnoDBは全文検索をサポートします。しかし、なぜ旧バージョンのInnobDBがFTSをサポートしていなかったのでしょうか。私の推測では、テーブルの格納形式またはデータのインデックス付け方法が原因です。私の無知でごめんなさい。

7
hungneox

昔、人々はInnoDBのFTSと 熱心に回避策を探しています を強く求めてきました。 2005年1月頃に InnoDBが開発者を探すスポンサーを見つけました

開発者が心配した最大の落とし穴の1つは、トランザクションと調和してフルテキスト検索(FTS)を機能させることでした。挿入された文字列のトークン化はコミット時にのみ実行されるため、これは特に必要であり、全文検索ではコミットされていないデータは表示されません。

InnoDBを使用したFTSにはチュートリアルがあります ですが、MySQL 5.6には InnoDB/FTSのバグが2つあります があることに注意してください。

2
RolandoMySQLDBA

代替方法は、InnoDBとMyISAMで互いに同期された2つのテーブルを使用することです。 2番目のテーブルでは、関数を調べて、最初のテーブルからデータを返すことができます。例があります ここ