首页 新闻 会员 周边 捐助

msql5.7用EXPLAIN分析sql时关于索引的疑问

0
悬赏园豆:10 [已解决问题] 解决于 2019-03-03 11:03

分析sql及表结构如下:

查询时使用的是id这个主键,为什么分析出来却说是用的pid这个索引?

godfather007的主页 godfather007 | 初学一级 | 园豆:172
提问于:2019-02-27 14:57
< >
分享
最佳答案
0

以下是我的理解:
1.ck_user 和 ck_user_audit 这两个表连接,ck_user 这个表是左表。
2.左表需要扫描 id 列的所有行。而含有 id 列的索引有两个:主键 id,索引 pid 。
3.这两个索引的大小不一样:主键 id 包含表的所有列,索引 pid 包含两列(id,pid)。
从上面可以看出,使用索引 pid 反而刚好。

收获园豆:10
AYard | 菜鸟二级 |园豆:436 | 2019-02-27 18:10

请问你从哪里看出来‘含有 id 列的索引有两个:主键 id,索引 pid’的呢?

godfather007 | 园豆:172 (初学一级) | 2019-02-27 18:15

@godfather007: 你无非是想问,为什么索引pid包含id列。这是索引的结构决定的。
--《高性能MySQL》

AYard | 园豆:436 (菜鸟二级) | 2019-02-27 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册