开发者社区> 问答> 正文

为什么做mysql语句查询主键,会使用其它的索引?

表索引
tb_order 0 PRIMARY 1 id A 453606 BTREE

tb_order 1 idx2 1 update_time A 854 BTREE

tb_order 1 idx1 1 user_id A 82 BTREE

tb_order 1 idx1 2 runner_id A 188 BTREE

语句
EXPLAIN select id from tb_order limit 10

explain结果

1 SIMPLE tb_order index idx2 4 453606 Using index

展开
收起
落地花开啦 2016-01-31 10:14:31 2931 0
1 条回答
写回答
取消 提交回答
  • 宁海元,袋鼠云联合创始人兼CTO,前淘宝DBA、阿里云数加平台技术团队负责人。在数据库和大数据领域内有超过13年的积累,《高性能MySQL》第三版主要译者。

    MySQL的表实际上是基于主键的聚簇表,二级索引中包含了主键列。 你的查询使用二级索引idex2做全扫描的成本更低

    2019-07-17 18:36:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像