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

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

Susan Sarandon
リリース: 2024-12-08 17:46:11
オリジナル
570 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート