Индексные размеры в MySQL

Я только начинаю исследовать оптимизацию для своей базы данных MySQL. Из того, что я читаю, индексация походит на хорошую идею - таким образом, я желаю создать индекс на одном из моего VARCHAR столбцы, на таблице с помощью MyISAM механизм.

Из того, что я читаю, я понимаю, что индекс ограничен размером 1 000 байтов. A VARCHAR символ составляет 3 байта в размере, все же. Делает это означает это, если я хочу к индексу a VARCHAR столбец с 50 строками, мне нужен индексный префикс 6 символов? (1 000-байтовые / 50 строки / 3 байта за символ = 6.66)

Если так, это кажется небольшим comiplicated - который является, почему я подвергаю сомнению свое понимание. Это кажется довольно нечетным, что Вы только смогли бы к индексным 333 строкам в a VARCHAR столбец, с помощью префикса 1 символа.

Я пропускаю что-то?

7
задан Troy Alford 22 April 2013 в 19:52
поделиться

2 ответа

Из того, что я прочитал, я понимаю, что размер индекса ограничен 1000 байтами.

Ключ индекса длина ограничена 1000 байтов в MyISAM , 767 байтов в InnoDB (на столбец).

Это означает, что вы не можете проиндексировать один столбец UTF8 длиной более 333 символов в таблице MyISAM (при вычислении максимального размера индекса ] MySQL предполагает 3 байта на символ, хотя фактическая длина может быть намного меньше)

Вы можете создать столько индексированных записей, сколько вам нужно.

4
ответ дан 7 December 2019 в 14:30
поделиться

Я думаю, это означало ширину varchar. Если максимальный размер индекса составляет 1000 байт, а длина varchar - 3 байта, то максимальный индексируемый размер будет 1000/3.

0
ответ дан 7 December 2019 в 14:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: