高度な検索機能が必要な場合は、全文検索ソリューションを使用してください。
MySQLでは、組み込みの全文検索インデックス この機能は、MyISAMストレージエンジンでのみ機能します。 InnoDBはすべてのMySQLテーブルに適したストレージエンジンであるため、これは残念なことです。最近のバージョンのMySQLのInnoDBは、ほとんどの場合MyISAMよりも高速であり、MyISAMよりも優れたクラッシュリカバリ機能を備えています。
MySQL開発チームから、InnoDBのフルテキストインデックスを実装する予定であるという声明がありました。しかし、これが利用可能になるまでには何ヶ月も、あるいは何年もかかります。確かに、MySQLの新しいバージョンにアップグレードする必要があります。
MyISAMフルテキストインデックスを使用する必要がある場合は、データを主にInnoDBに保存してから、検索可能なテキストのコピーをMyISAMテーブルに保存することをお勧めします。
SphinxSearch
などの外部ソリューションを使用することもできます。 または
LIKE
を使うのは好きではありません ワイルドカードまたはREGEXP
フルテキスト検索用。これらのソリューションでは、検索ごとに全表スキャンが発生し、データの量に応じて、インデックスがある場合よりも実行速度が数百倍または数千倍遅くなります。
MySQLの全文検索ソリューションの比較をプレゼンテーションで書きました。「
更新:MySQL 5.6は現在開発中であり(2012年2月現在)、InnoDBのフルテキストインデックスソリューションを実装しています。