文字列型カラム(varchar型やchar型など)に対してインデックスを作成する場合に最大キー長があり、それはバイト数で管理されています。今回はいくつかのオプションやパラメータが、InnoDBのインデックスの最大キー長に対してどのように影響するかを紹介します。 InnoDBのファイルフォーマットによるインデックスの最大キー長の違い 基本的には単一カラムインデックスの最大キー長は767バイトまで作成できます。特定の条件ではインデックスの最大キー長を3072バイトまで拡張することができます。その条件は以下のとおりです。 テーブル作成時に行フォーマットをDYNAMICまたはCOMPRESSEDに指定する。 innodb_file_per_tableパラメータをONに設定して、テーブルデータを個別のibdファイルに格納するようにする。 innodb_large_prefixパラメータを有効にする。
![第32回 InnoDBインデックスの最大キー長について | gihyo.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/d34502a68fb4a5182423b4f793d18a09c73fb437/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2FICON%2F2022%2F1898_mysql_rcn_new.png)