sql >> データベース >  >> RDS >> Mysql

Mysql ::Error:指定されたキーが長すぎました。キーの最大長は1000バイトです

    これは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文字を超えるデータを検索すると、インデックスを使用できなくなります。



    1. MySQLでWITH句をどのように使用しますか?

    2. SQLiteはPRINTF()の名前をFORMAT()に変更します

    3. データベースのインデックス作成の詳細

    4. SQL Server(T-SQL)の日付から週番号を抽出する