ホームページ >データベース >mysql チュートリアル >MySQL の「行サイズが大きすぎます」エラーを修正するにはどうすればよいですか?

MySQL の「行サイズが大きすぎます」エラーを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 17:46:11571ブラウズ

How Can I Fix MySQL's

サイズ超過データに対する MySQL 行サイズ制限の調整

エラー メッセージ「行サイズが大きすぎます (> 8126)」は、MySQL テーブル内の行が制限を超えていることを示します。デフォルトの 8KB 制限。この問題には、テーブルの列で使用されるデータ型など、いくつかの要因が関与しています。

考えられる解決策の 1 つは、一部の列を TEXT または BLOB データ型に変更することです。これらのデータ型は大量のデータに対応できるためです。さらに、ROW_FORMAT=DYNAMIC または ROW_FORMAT=COMPRESSED を使用すると、より効率的な方法でデータを保存することで行サイズを削減することもできます。

ただし、表示されるエラー メッセージは、これらの変更を行っても行サイズが依然として変更される可能性があることを示唆しています。大きすぎること。これは、InnoDB ストレージ エンジンが BLOB データの最初の 768 バイトを行内にインラインで格納し、行サイズがさらに制限されるためです。

この問題に対処するには、次のソリューションの実装を検討してください。

  1. 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.
  2. を使用します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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。