mysql 联合索引失效的问题?
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL DEFAULT '',
`balance` int(11) NOT NULL DEFAULT '0',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `created_at` (`created_at`),
KEY `idx_name_balance` (`name`,`balance`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;
INSERT INTO `users` VALUES (1, '张三', 7031151, 5500, '2019-07-18 11:03:13', '2019-08-12 16:27:23');
INSERT INTO `users` VALUES (2, '李四', 7031151, 1000, '2019-07-18 11:03:24', '2019-07-18 11:08:52');
INSERT INTO `users` VALUES (3, 'ccc', 7031151, 4561, '2019-08-09 18:27:03', '2019-08-09 18:27:03');
INSERT INTO `users` VALUES (6, 'ccc', 7031151, 4561, '2019-08-12 15:19:01', '2019-08-12 15:19:01');
- 如下会用到联合索引的两个字段
EXPLAIN SELECT
name,balance
FROM
users
WHERE
`name` = "haha"
and
balance=123
- 但是执行如下sql, 只用到了联合索引中的第一个字段, 第二个字段却没有用到, 这是咋回事儿
EXPLAIN SELECT
name,balance
FROM
users
WHERE
`name` = "haha"
order by
balance desc
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
都是
ref
,key都是对应的索引,哪来的组合索引失效?