テーブルの属性にFULLTEXTインデックスを作成しようとしています。Mysqlは
エラー1214:使用されているテーブルタイプはFULLTEXTインデックスをサポートしていません。
私が間違っていることについて何か考えはありますか?
テーブルの属性に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は、オペレーティングシステム(ウィンドウ以外)のデフォルトタイプであり、SELECTとINSERTをすばやく実行します。ただし、トランザクションは処理しません。InnoDBはWindowsのデフォルトであり、トランザクションに使用できます。ただし、InnoDBはサーバー上により多くのディスクスペースを必要とします。
MySQL 5.6までは、MyISAMは全文検索(FTS)をサポートする唯一のストレージエンジンでしたが、MySQL5.6のInnoDBFTSは構文的にMyISAMFTSと同じです。詳細については、以下をお読みください。
MySQL <= 5.5の場合、mysqlマニュアルには、FULLTEXT
インデックスはmylsamエンジンを使用するテーブルでのみ作成できると記載されています。
InnoDBを使用していますか?FULLTEXTをサポートする唯一のテーブルタイプはMyISAMです。
MyISAMテーブルは別として、インデックスPARTITIONING
もサポートしていません。full-text