回答編集履歴
2
微修正
test
CHANGED
@@ -21,5 +21,5 @@
|
|
21
21
|
4. ストレージエンジンにInnoDBを使わない
|
22
22
|
MyISAMストレージエンジンなら、最初に説明したようなインデックス長の制限はありません。いくらでも長いカラムにインデックスを作成できます。ただ、MyISAMはトランザクション、外部キー制約、行ロックなどといった現代的な機能をサポートしませんし、クラッシュリカバリの機能もありません。過去に構築したシステムを塩漬け状態で移行したいような場合以外は使わないほうがいいでしょう。
|
23
23
|
|
24
|
-
これまでA社ではできていたとのことです。もしもA社で作成したデータベースのダンプが残っていればテーブルの作成方法を確認できるので、これらのどれかに当てはまるか
|
24
|
+
これまでA社ではできていたとのことです。もしもA社で作成したデータベースのダンプが残っていればテーブルの作成方法を確認できるので、これらのどれかに当てはまるかわかるかもしれませんね。
|
25
25
|
|
1
typos
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
*
|
1
|
+
* 文字セットを`utf8mb4`としているカラムでは、1文字あたり4バイト使います。つまり`VARCHAR(1000)`のカラムは4000バイトの長さです。
|
2
|
-
*
|
2
|
+
* 一方、InnoDBストレージエンジンを用いている場合、「インデックスキーの接頭辞」の長さは最大で 3072 バイトに制限されます ("[InnoDB Limits](https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html)" を参照)。
|
3
3
|
|
4
4
|
ですので、ご質問のような場合はインデックスの長さが制限を超えてしまい、インデックスを作成できません。
|
5
5
|
|