ホームページ >データベース >mysql チュートリアル >MySQL エラー 1118: 多くの列を持つテーブルを作成する際の「行サイズが大きすぎます」を解決する方法?

MySQL エラー 1118: 多くの列を持つテーブルを作成する際の「行サイズが大きすぎます」を解決する方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-04 11:31:35221ブラウズ

How to Resolve MySQL Error 1118:

エラー: MySQL の行サイズが大きすぎます (エラー コード: 1118) 325 列のテーブルを作成するとき

大きな数の MySQL テーブルを作成しようとしたとき列数 (この場合は 325) が多いと、「エラー コード: 1118 行サイズが大きすぎます」エラーが発生する可能性があります。このエラーは、テーブル行のデータの合計サイズがデータベースで許可されている最大行サイズを超えた場合に発生します。

この問題を解決するには、次のようないくつかの措置を講じることができます。

  1. 列を TEXT または BLOB に変更します: エラー メッセージは、列を TEXT または BLOB データ型に変換してストレージ サイズを削減することを提案します。 TEXT データ型と BLOB データ型は、それぞれ大量の非構造化データまたはバイナリ データを保存するように設計されています。
  2. Barracuda ファイル形式を有効にする: MySQL 構成ファイル (mySQL 構成ファイルに innodb_file_format=Barracuda 設定を追加します) .ini) を使用すると、ユーザーは Barracuda ファイル形式に切り替えることができます。 Barracuda は、従来の InnoDB ファイル形式と比較してパフォーマンスが向上し、より大きな行サイズをサポートする新しいファイル形式です。
  3. Strict モードを無効にする: innodb_strict_mode 設定を無効にすると、作成を許可できます。最大行サイズを超えるテーブルの数。ただし、厳密モードを無効にすると、場合によってはデータの整合性が損なわれる可能性があることに注意してください。

提供された例では、ユーザーは VARCHAR 列を TEXT に置き換えて Barracuda を有効にしましたが、エラーは継続しました。この問題は、innodb_strict_mode=0 を設定して厳密モードを無効にすることで最終的に解決されました。これにより、最大行サイズ制限を超えたにもかかわらず、テーブルを正常に作成できました。データの整合性に影響を与える可能性があるため、厳密モードを無効にすることは最後の手段として考慮する必要があることに注意してください。

以上がMySQL エラー 1118: 多くの列を持つテーブルを作成する際の「行サイズが大きすぎます」を解決する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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