Я создал таблицу с двумя разными типами кодировки: utf8 и latin1.Как mysql выделяет длину ключа первичного ключа или внешнего ключа?
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 | ref | строка s | Экстра |
| 1 | ПРОСТОЙ | aaa | ref | имя | имя | 258 | const | 2 | Использование где; Использование индекса |
1 строка в наборе (0,00 сек)
2)
mysql> explain select count(*) from aaa where name = "haha";
| id | select_type | стол | тип | possible_keys | ключ | key_len | ref | строка s | Экстра |
| 1 | ПРОСТОЙ | aaa | ref | имя | имя | 768 | const | 2 | Использование где; Использование индекса |
1 строка в наборе (0,01 сек)
я не знаю, каким образом системы выделяет key_len для аналогичных таблиц, которые были определены с использованием различных кодовым?
MY EYESSSSSSSSSS – Scotch