MySQL 行サイズのサイズ制限の変更が大きすぎます
エラー「Mysql 行サイズが大きすぎます」は、行のサイズが大きすぎる場合に発生します。テーブルが指定された制限を超えています。この問題を解決するには、行サイズの制約を変更する必要があります。
行サイズ制限について
MySQL では、InnoDB テーブルのデフォルトの行サイズ制限は 8126 です。バイト。この制限は、データとオーバーヘッドを含む、行内のすべての列の合計サイズに適用されます。
行サイズ エラーの考えられる原因
- 大きなテキストがあるテーブル内のまたは BLOB 列
- 領域を最適化しない行形式の使用使用率
- 非キー列への過剰なデータの保存
行サイズ制限の変更
行サイズ制限を増やすには、次の方法があります。いくつかのアプローチを検討できます:
-
テーブル行の変更形式: ROW_FORMAT=DYNAMIC または ROW_FORMAT=COMPRESSED を使用するようにテーブル定義を編集します。これらの形式は、可変長列をより効率的に格納し、全体的な行サイズを削減します。
-
Barracuda ファイル形式に変換: このファイル形式では、長いフィールドのインライン ストレージのオーバーヘッドが排除され、利用可能な行サイズ。 Barracuda を有効にするには、innodb_file_format = Barracuda を my.cnf ファイルに追加します。
-
MyISAM エンジンに切り替える: MyISAM エンジンには、InnoDB よりも行サイズ制限が高くなります。ただし、トランザクションや大規模なデータセットの処理にはそれほど効率的ではありません。
追加のヒント
- 大きな非キー列を特定して TEXT に変換する
- インデックス作成を使用して、それぞれのデータ型で取得されるデータ量を削減します。クエリ。
- テーブルを定期的に分析してデフラグし、未使用の領域を削除し、ストレージ効率を最適化します。
追加のトラブルシューティング手順
-
外部キー関係の確認: 外部キー関係の過剰な参照行サイズの膨張につながる可能性があります。
-
クエリ構造を確認する: 不要なデータ列の取得を避けるためにクエリを最適化することを検討してください。
-
データの整合性を調べる: 検証するデータ値が適切に切り捨てられるか、適切なサイズに制限されていること。
以上が「MySQL 行サイズが大きすぎます」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。