【发布时间】:2013-04-10 19:50:48
【问题描述】:
我创建了一个具有 2 种不同字符集类型的表: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";
|编号 |选择类型 |表|类型 |可能的键 |关键 | key_len |参考 |行 |额外 |
| 1 |简单 |啊!参考 |姓名 |姓名 | 258 |常量 | 2 |使用哪里;使用索引 |
集合中的 1 行(0.00 秒)
2)
mysql> explain select count(*) from aaa where name = "haha";
|编号 |选择类型 |表|类型 |可能的键 |关键 | key_len |参考 |行 |额外 |
| 1 |简单 |啊!参考 |姓名 |姓名 |第768章常量 | 2 |使用哪里;使用索引 |
集合中的 1 行(0.01 秒)
我不知道系统如何为使用不同字符集定义的类似表分配key_len?
【问题讨论】:
标签: mysql sql database indexing sql-tuning