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

MySQL が行サイズが大きすぎるエラー (1118) をスローするのはなぜですか? それを修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-04 07:53:35146ブラウズ

Why Does MySQL Throw a Row Size Too Large Error (1118) and How Can I Fix It?

MySQL 行サイズが大きすぎるエラー (コード 1118): 包括的な説明

多数の列を持つテーブルを作成しようとしたとき325 列で提供されている例のように、MySQL は行サイズが最大制限を超えていることを示すエラーをスローする場合があります。このエラーは、大きなテーブルを操作するときによく発生し、非常にイライラする可能性があります。

質問に記載されているトラブルシューティング手順の 1 つに、VARCHAR 列を TEXT または BLOB に変更することが含まれています。 TEXT および BLOB データ型は、テキスト データやバイナリ データなどの大量のデータを格納するために使用され、VARCHAR と比較してより多くのデータを収容できます。さらに、MySQL での Barracuda ファイル形式の導入は、特に大きなテーブルのパフォーマンスとスケーラビリティを向上させることを目的としています。

しかし、これらの対策を実装した後でも、質問にはエラーが続くと記載されています。この問題を解決する別の解決策は、MySQL 構成パラメータ innodb_strict_mode を変更することです。

innodb_strict_mode を 0 に設定する:

MySQL のドキュメントに従って、innodb_strict_mode を 0 に設定すると無効になります。特定のチェックを行うことで、データ検証をより寛大に処理できるようになります。これにより、制限を超える行サイズに関連するエラーを解決できます。

innodb_strict_mode の変更方法:

  1. MySQL 構成ファイル (my.ini または my .cnf).
  2. [mysqld] を見つけます
  3. 次の行を追加します。
innodb_strict_mode = 0
  1. 構成ファイルを保存し、MySQL サービスを再起動します。

innodb_strict_mode が設定されたら、 0 に設定すると、行サイズ制限の適用が緩和され、以前の行サイズ制限なしでテーブルを作成できるようになります。 error.

厳密モードを無効にすると、データの整合性と精度に影響を及ぼす可能性があることに注意することが重要です。そのため、このソリューションを慎重に使用し、データベースの機能への影響を考慮することをお勧めします。

以上がMySQL が行サイズが大きすぎるエラー (1118) をスローするのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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