これはMySQLの問題です-
MySQLにはさまざまなエンジンがあります-MyISAM、InnoDB、メモリ...
MySQLには、使用できるスペースの量にさまざまな制限があります。列にインデックスを定義します-MyISAMの場合は1,000バイトです。 InnoDBの場合は767です
。そして、それらの列のデータ型は重要です-VARCHAR
の場合 、3倍なので、VARCHAR(100)
のインデックス これらのバイトのうち300バイトを使用します(100文字* 3 =300であるため)。
上限値に達したときにインデックスを作成するために、列のデータ型の一部に関してインデックスを定義できます。
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
your_column
と仮定します VARCHAR(100)
です 、上記の例のインデックスは最初の50文字のみになります。 50文字を超えるデータを検索すると、インデックスを使用できなくなります。