Я создал таблицу с двумя разными типами кодировки: utf8 и latin1.
1)
CREATE TABLE `aaa` (
`id` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2)
CREATE TABLE `aaa` (
`id` int(11) NOT NULL DEFAULT '0',
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Затем вставляю значение в несколько строк. При использовании объяснения для выбора обеих таблиц у меня был другой key_len:
1)
mysql> explain select count(*) from aaa where name = "haha";
| id | select_type | стол | тип | possible_keys | ключ | key_len | исх | строка s | Экстра |
| 1 | ПРОСТО | ааа | исх | имя | имя | 258 | const | 2 | Используя где; Используя index |
1 ряд в комплекте (0,00 сек)
2)
mysql> explain select count(*) from aaa where name = "haha";
| id | select_type | стол | тип | possible_keys | ключ | key_len | исх | строка s | Экстра |
| 1 | ПРОСТО | ааа | исх | имя | имя | 768 | const | 2 | Используя где; Используя index |
1 ряд в комплекте (0,01 сек)
Я не знаю, как система выделяет key_len для аналогичных таблиц, которые были определены с использованием другой кодировки?