1

エンコーディングとしてutf8を使用してMySQL5.1.61を使用しています。2つのvarchar(255)列があります。2つの列にインデックスを作成しようとすると、「指定されたキーが長すぎました。最大キー長は1000バイトです」というエラーが発生しました。utf8は1文字に3バイト必要であると言っている多くのスタックを検索しました。私の質問は、Windows7ではうまく機能しますが、Linuxでは機能しないということです。確認する必要のある特別な構成はありますか?前もって感謝します。

============================編集:答えが得られました================ =================

これは、5.5.14以降に導入されたinnodb_large_prefixの新しいオプションを継ぎ合わせます。デフォルトでは、単一列インデックスのインデックスキーは最大767バイトです。同じ長さ制限がすべてのインデックスキープレフィックスに適用されます。innodb_large_prefix構成オプションが有効になっている場合、DYNAMICおよびCOMPRESSED行フォーマットを使用するInnoDBテーブルの場合、この長さ制限は3072バイトに引き上げられます。許可されているよりも長いインデックスプレフィックス長を指定しようとすると、長さはサイレントに最大長に短縮されます。

5.5.22にアップグレードした後に動作します

4

0 に答える 0