29

テーブルの属性にFULLTEXTインデックスを作成しようとしています。Mysqlは

エラー1214:使用されているテーブルタイプはFULLTEXTインデックスをサポートしていません。

私が間違っていることについて何か考えはありますか?

4

5 に答える 5

55

間違ったタイプのテーブルを使用しています。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はサーバー上により多くのディスクスペースを必要とします。

于 2009-06-08T05:43:25.513 に答える
10

MySQL 5.6までは、MyISAMは全文検索(FTS)をサポートする唯一のストレージエンジンでしたが、MySQL5.6のInnoDBFTSは構文的にMyISAMFTSと同じです。詳細については、以下をお読みください。

MySQL5.6でのInnoDB全文検索

于 2013-03-06T13:33:08.190 に答える
7

MySQL <= 5.5の場合、mysqlマニュアルには、FULLTEXTインデックスはmylsamエンジンを使用するテーブルでのみ作成できると記載されています。

于 2009-06-08T05:42:44.283 に答える
5

InnoDBを使用していますか?FULLTEXTをサポートする唯一のテーブルタイプはMyISAMです。

于 2009-06-08T05:43:00.960 に答える
2

MyISAMテーブルは別として、インデックスPARTITIONINGもサポートしていません。full-text

于 2016-03-25T14:19:12.783 に答える