小编Xup*_*eng的帖子

对带有数字参数的 varchar 列进行查询时出现意外的索引扫描

我有一个带有这样架构的测试表:

CREATE TABLE `indextest` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

这是表中的行:

mysql [localhost] {msandbox} (test) > select * from indextest;
+----+--------+
| id | name   |
+----+--------+
|  3 | 111222 |
|  1 | hello  |
|  2 | world  |
|  4 | wow    |
+----+--------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

当我针对name带有字符串的列查询表时,它看起来不错:

mysql [localhost] {msandbox} (test) > explain select * …
Run Code Online (Sandbox Code Playgroud)

mysql

6
推荐指数
1
解决办法
435
查看次数

标签 统计

mysql ×1