MySQL の行サイズ制限を変更する方法
「行サイズが大きすぎます (> 8126)」というエラーが発生した場合、これは、MySQL で許容される最大行サイズを示しています。 MySQL を超えました。この問題を解決するには、テーブル設計に関する特定の考慮事項とデータベース構成の調整を実装できます。
推奨事項
Stack Exchange で提案されている解決策には、my.cnf ファイルの設定を変更することが含まれます。
-
Barracuda ファイル形式を有効にする: Barracuda ファイルを使用するように InnoDB を構成するinnodb_file_format=Barracuda を設定してフォーマットします。これにより、BLOB データの一部をインラインで格納する必要がなくなり、行サイズが削減されます。
-
ROW_FORMAT=COMPRESSED を使用します: テーブルの行形式を ROW_FORMAT=COMPRESSED に変更します。この形式は、圧縮を適用することで BLOB データのサイズを削減します。
コマンド例:
ALTER TABLE table_name
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED
KEY_BLOCK_SIZE=8;
ログイン後にコピー
-
MyISAM へのフォールバック:上記の対策で問題が解決しない場合は、内部データの一時ストレージ エンジンとして MyISAM を使用することを検討してください。次の行を my.cnf ファイルに追加します:
internal_tmp_disk_storage_engine=MyISAM
ログイン後にコピー
考慮事項
-
テーブル スキーマの確認: テーブルの列を確認します。とそのデータ型。過剰なデータを含む列を TEXT または BLOB に変更することを検討してください。
-
動的または圧縮された行形式を使用する: テーブルの ROW_FORMAT=DYNAMIC または ROW_FORMAT=COMPRESSED オプションは、データのスペース使用率の最適化に役立ちます。 - 重い行。
-
検討してくださいシャーディング: テーブルに大量のデータが含まれている場合は、複数のデータベースまたはテーブル間でデータをシャーディングすることを検討してください。これにより、各テーブルの行サイズが減少します。
以上がMySQL の「行サイズが大きすぎます」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。