エラー メッセージ「行サイズが大きすぎます (> 8126)」は、MySQL テーブル内の行が制限を超えていることを示します。デフォルトの 8KB 制限。この問題には、テーブルの列で使用されるデータ型など、いくつかの要因が関与しています。
考えられる解決策の 1 つは、一部の列を TEXT または BLOB データ型に変更することです。これらのデータ型は大量のデータに対応できるためです。さらに、ROW_FORMAT=DYNAMIC または ROW_FORMAT=COMPRESSED を使用すると、より効率的な方法でデータを保存することで行サイズを削減することもできます。
ただし、表示されるエラー メッセージは、これらの変更を行っても行サイズが依然として変更される可能性があることを示唆しています。大きすぎること。これは、InnoDB ストレージ エンジンが BLOB データの最初の 768 バイトを行内にインラインで格納し、行サイズがさらに制限されるためです。
この問題に対処するには、次のソリューションの実装を検討してください。
Barracuda ファイルに切り替える形式:
my.cnf に以下を追加しますファイル:
innodb_file_per_table=1
- This file format removes the issue of storing BLOB data inline, allowing larger rows to be accommodated.
を使用しますROW_FORMAT=COMPRESSED:
次のクエリを実行してテーブルを変更します構造:
ALTER TABLE table_name ENGINE=InnoDB ROW_FORMAT=COMPRESSED
- This setting reduces the row size by compressing non-key columns, potentially resolving the issue.
上記の解決策でも問題が解決しない場合は、次のことを検討してください。次の行を my.cnf に追加して、一時データを保存するために MyISAM エンジンに一時的に切り替えます。ファイル:
internal_tmp_disk_storage_engine=MyISAM
以上がMySQL の「行サイズが大きすぎます」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。