explain的结果中关于key_len的一个疑问
曾经的阿飞 2010-07-27 02:38:10 mysql@stat1.db.db_monitor>explain select * from test where value1='';
+----+-------------+-------+------+-------------------+-------------------+---------+-------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+-------------------+-------------------+---------+-------+------+-------------+
| 1 | SIMPLE | test | ref | idx_value1_value2 | idx_value1_value2 | 13 | const | 1 | Using where |
+----+-------------+-------+------+-------------------+-------------------+---------+-------+------+-------------+
1 row in set (0.00 sec)
mysql@stat1.db.db_monitor>desc test;
+--------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+----------------+
| id | tinyint(4) | NO | PRI | NULL | auto_increment |
| value | tinyint(4) | YES | | NULL | |
| value1 | char(4) | YES | MUL | NULL | |
| value2 | char(4) | YES | | NULL | |
+--------+------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
这个key_len为啥是13呢?
show create table test;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test | CREATE TABLE `test` (
`id` tinyint(4) NOT NULL auto_increment,
`value` tinyint(4) default NULL,
`value1` char(4) collate utf8_bin default NULL,
`value2` char(4) collate utf8_bin default NULL,
PRIMARY KEY (`id`),
KEY `idx_value1_value2` (`value1`,`value2`)
) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 COLLATE=utf8_bin |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)