@kirill-93

Как считается длина ключа в MySQL?

Есть ключ, который состоит из 5 полей:
created_at    (timestamp),
post_type     (varchar 255),
is_duplicate (tinyint 1),
deleted        (tinyint 1),
entity_id       (int)

На сколько я понял, поле key_len в explain показывает длину ключа, которая используется в запросе, а длина считается по типу поля у ключе.
То есть у меня:
timestamp - 4 байта
varchar - по количеству символов + 1. В этом поле у меня может быть одна из шести строк, длина каждой 4-6 символов
is_duplicate - 1 байт
deleted - 1 байт
entity_id = 4 байта

В запросе explain я получаю key_len 779. Что это значит? Как считается?
  • Вопрос задан
  • 799 просмотров
Пригласить эксперта
Ответы на вопрос 1
gobananas
@gobananas
finishhim.ru
Столбец key_len содержит длину ключа, которую решил использовать MySQL. Если key имеет значение NULL, то длина ключа (key_len) тоже NULL. Обратите внимание: по значению длины ключа можно определить, сколько частей составного ключа в действительности будет использовать MySQL.

Так что это не совсем размер поля в байтах.
stackoverflow.com/questions/7643491/understanding-...
Например на поле varchar(32) EXPLAIN говорит что key_len 98
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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