serverfault で質問がありました
もこの記事をご覧ください。 これは、MySQLの行サイズについて多くのことを説明しています。 TEXTまたはBLOBフィールドを使用する場合でも、ページ内の各フィールドの最初の768バイトがインラインで格納されるため、行サイズが8K(InnoDBの制限)を超える可能性があることに注意してください。
これを修正する最も簡単な方法は、バラクーダファイル形式を使用することです。 InnoDBを使用します。これは基本的に、最初の768バイトを格納するのではなく、テキストデータへの20バイトのポインタを格納するだけで、問題を完全に取り除きます。
OPで機能した方法は次のとおりです。
-
my.cnf
に以下を追加します[mysqld]
の下のファイル セクション。innodb_file_per_table=1 innodb_file_format = Barracuda
-
ALTER
使用するテーブルROW_FORMAT=COMPRESSED
。ALTER TABLE nombre_tabla ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
上記でも問題が解決しない可能性があります。これはmy.cnf
で ファイル:
internal_tmp_disk_storage_engine=MyISAM