テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎます。キーの最大長は 767 バイトです」というメッセージが表示されました。説明から、キーが長すぎて、指定された制限の 767 バイトを超えているようです。 以下は問題を引き起こすテーブル構造です テーブル `test_table` を作成します ( `id` int(11) 符号なし NOT NULL AUTO_INCREMENT, `name` varchar(1000) NOT NULL デフォルト '' `link` varchar(1000) NOT NULL デフォルト '', 主キー (`id`)、 キー `name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=1 デフォルト CHARSET=utf8mb4; 名前の長さを1000可変文字に設定していることがわかります。utf8mb4エンコーディングが使用されているため、サイズは1000 * 4 > 767になります。 興味のある学生は 解決策1
my.cnf の設定 グローバル innodb_large_prefix を on に設定します。 グローバル innodb_file_per_table を on に設定します。 グローバル innodb_file_format=BARRACUDA を設定します。 グローバル innodb_file_format_max=BARRACUDA を設定します。 上記の3072バイトの理由は次のとおりです。 InnoDB ページのデフォルト サイズは 16k であることがわかっています。これは Btree 構成であるため、リーフ ノード上のページには少なくとも 2 つのレコードが含まれている必要があります (そうでない場合、リンク リストに退化します)。 解決策2テーブルを作成するときに、row_format=DYNAMICを追加します。 テーブル `test_table` を作成します ( `id` int(11) 符号なし NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL デフォルト '' `link` varchar(255) NOT NULL デフォルト '' 主キー (`id`)、 キー `name` (`name`) )ENGINE=InnoDB デフォルト文字セット=utf8mb4 row_format=DYNAMIC; このパラメータの機能は次のとおりです MySQL インデックスは 767 バイトしかサポートしておらず、utf8mb4 の各文字は 4 バイトを占めるため、インデックスの最大長は 191 文字、つまり varchar(191) に限られます。より大きなフィールドを使用する場合は、MySQL をデータ圧縮をサポートするように設定し、テーブル属性 row_format ={DYNAMIC|COMPRESSED} を変更する必要があります。 これで、MySQL インデックスが長すぎる問題の解決方法についての記事は終了です。MySQL インデックスが長すぎる問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: pdf.js を使用して Vue で PDF ファイルをプレビューする方法
目次1. 型2. インスタンス3. 違い1. 型typeof 演算子は、評価されていないオペランドの...
1. ダウンロード参考: https://www.jb51.net/softs/451120.ht...
*ページを作成する: 2つの入力ボックスとボタン*コードと手順/* 1. 入力行と列の値を取得する2...
Webサービスのリモートデバッグ.NET では、WEBSERVICE のリモート デバッグ機能はデフ...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...
各人が固有の携帯電話番号で登録し、ビジネス コードによって重複する携帯電話番号が 2 つ書き込まれな...
ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...
/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...
テーブルを作成する テーブル `map` を作成します ( `id` int(11) NULLではな...
記録として、将来使用される可能性があり、困っている友人も使用できます。 BBはもうやめて、まずはレン...
1. サーバーの購入1. 私はAlibaba Cloudのサーバーを選択しました。学生向けで月額9...
1.MySqlをダウンロードしてインストールする公式ウェブサイトからMySqlデータベースをダウンロ...
ダウンロード:ステップ 1: ウェブサイトを開きます (ダウンロードするには公式ウェブサイトにアクセ...
目次1. withRouterコンポーネントを使用する2. ルートタグを使用するReactRoute...