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

有网友碰到过这样的问题:msql5.7用EXPLAIN分析sql时关于索引的疑问,问题详细内容为:

分析sql及表结构如下:

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

mysql,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:

网友提供的解决方案1:

以下是我的理解:

1.ck_user 和 ck_user_audit 这两个表连接,ck_user 这个表是左表。

2.左表需要扫描 id 列的所有行。而含有 id 列的索引有两个:主键 id,索引 pid 。

3.这两个索引的大小不一样:主键 id 包含表的所有列,索引 pid 包含两列(id,pid)。

从上面可以看出,使用索引 pid 反而刚好。收获园豆:10

============================================

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

============================================

@godfather007: 你无非是想问,为什么索引pid包含id列。这是索引的结构决定的。

--《高性能MySQL》

SQL SERVER关于索引的问题

聚集索引的创建并不是说一定要在主键上,虽然主键是唯一的,并且很多时候主键会被默... 如果把聚集索引建立在这样的列上,对于查询效率的提升没有任何意义。聚集索引应该是...

关于SQL索引和视图的问题

索引当然是建在表上,索引是为了提高查询速度提供的一种方式,使用不当会有可能降低速度,索引建好了,当查询条件中where后面使用到的列名上有索引,数据库会自动使用索引 ...

关于sql中加入索引的问题

进入表设计页,在序列号左边右键添加主键

关于SQLServer 2000 索引问题

让他知道还有个“实时数据库”,这个才是解决办法。 如PI、eDNA等实时库才是能承受。 别说sql2000性能不好,就算用oracle11r2也不成。 如果非得用关系库,那就考虑分...

关于SQLServer 2000 索引问题

checkdb 检查数据库是不是 有性能问题 有错误没 cpu占用如何?

关于sql索引的问题

你首先要明白索引的意思,你这个提问有点 概念不清。索引是 数据库自动维护的,不是你说的插入数据库到索引。 实际上,您可以把索引理解为一种特殊的目录。微软的SQL S...

关于SQL创建非聚集索引问题

create nonclustered index INX_INDEX on TeacheInfo(Tno,Tname,Tsex,Tage) --创建非聚集索引 alter table TeacheInfo add primary key nonclustered (Tno) --主键且非聚集

关于SQL索引问题

唯一索引的意思不是说只能建立一个索引,而是该索引的字段值是唯一的,不能有重复,所以你所改的内容肯定与该索引的字段中其它值有重复了.

关于SQL server 2005的索引问题

建立索引是提高查询效率的,你在哪些字段建立了索引, 使用这些字段时就会按索引来搜索…… 比如 create index index_name on table_name (col); select * from tb where ...

关于SQL server 2005的索引问题。怎么办?

建立索引是提高查找效率的,你在哪些字段建立了索引, 用这类字段时就会按索引来搜索…… 例如 create index index_name on table_name (col); select * from tb where col>1...

请注意,本站信息均收集自互联网,相关信息仅供参考,医疗等重要信息请以正规途径为最终意见,本站不承担任何责任!