テーブルの属性にFULLTEXTインデックスを作成しようとしています。 Mysqlが戻る
エラー1214:使用されているテーブルタイプはFULLTEXTインデックスをサポートしていません。
私が間違っていることは何か考えていますか?
間違ったタイプのテーブルを使用しています。 Mysqlはいくつかの異なるタイプのテーブルをサポートしますが、最も一般的に使用されるのはMyISAMとInnoDBです。 MyISAM(MySQL 5.6以降ではInnoDBテーブル)は、Mysqlがフルテキストインデックス用にサポートするテーブルのタイプです。
テーブルのタイプを確認するには、次のSQLクエリを発行します。
SHOW TABLE STATUS
クエリによって返された結果を見て、エンジン列でテーブルと対応する値を見つけます。この値がMyISAMまたはInnoDB以外の場合、FULLTEXTインデックスを追加しようとすると、Mysqlはエラーをスローします。
これを修正するには、以下のSQLクエリを使用してエンジンタイプを変更します。
ALTER TABLE <table name> ENGINE = [MYISAM | INNODB]
追加情報(役立つと思われる):Mysqlは、さまざまなエンジンストレージタイプを使用して、特定のテーブルに必要な機能を最適化します。例MyISAMは、(Windows以外の)オペレーティングシステムのデフォルトタイプであり、SELECTとINSERTをすばやく実行します。ただし、トランザクションは処理しません。 InnoDBはウィンドウのデフォルトであり、トランザクションに使用できます。しかし、InnoDBはサーバー上により多くのディスク容量を必要とします。
MySQL 5.6までは、MyISAMが全文検索(FTS)をサポートする唯一のストレージエンジンでしたが、MySQL 5.6のInnoDB FTSが構文的にMyISAM FTSと同じであることは事実です。詳細については、以下をお読みください。
mysql manual は、FULLTEXT
インデックスは、mylsamエンジンを使用するテーブルでのみ作成できることを示しています。
InnoDBを使用していますか? FULLTEXTをサポートする唯一のテーブルタイプはMyISAMです。
myISAMテーブル以外のPARTITIONING
もfull-text
インデックスをサポートしていません。