MySQL エラー #1071: キーの長さの制限について
特定の列 (column1 および column2) を持つテーブルに一意のインデックスを追加しようとしたとき)、ユーザーは次のエラーが発生する可能性があります:
#1071 - Specified key was too long; max key length is 767 bytes
最初はカラム 1 (20) とカラム 2 (500) を合わせた長さが最大キー長の 767 バイト以内であるように見えますが、実際の説明は MySQL のプレフィックス インデックス作成の制限を理解することにあります。
MySQL 5.7 より前のバージョンでは、InnoDBテーブルのプレフィックス インデックスの制限は 767 バイトでしたが、MyISAM テーブルの制限は 1,000 バイトでした。これは、インデックスで使用される最大バイト数が、インデックスに含まれる列の開始部分に基づいていることを意味します。
指定された例では、column1 と column2 は両方とも VARCHAR(x) 列です。 、可変長文字列を格納します。このエラーは、MySQL が格納されている実際のデータだけでなく、カラム全体の長さをインデックスの一部と見なすために発生します。その結果、列 1 と列 2 の実際のデータが割り当てられた合計長より短い場合でも、インデックス サイズは最大制限を超えます。
このエラーを回避するには、ユーザーにはいくつかのオプションがあります。
MySQL キーの長さのエラーを回避するには、インデックス サイズに対する列の長さの影響を理解することが重要です。列のサイズとインデックスの定義を慎重に管理することで、ユーザーはデータベースの制限を超えることなくインデックスを正常に実装し、データの整合性を維持できます。
以上がMySQL エラー #1071: 指定されたキーが長すぎますが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。