开发者社区> 问答> 正文

优化MYSQL的数据表,遇到的问题

1.表结构如下:
14
其中 equipid和signalid是主键,然后我执行两个查询:
15
会发现第一个查询语句只用了equipid过滤条件进行过滤,使用explain extended查看查询信息,发现竟然没有用到索引。
而第二个语句用了两个主键的字段进行过滤,就出现了使用主键索引的情况。
再看看下面这个图:
16
单的一个查询,没有任何过滤条件,也是没有使用任何索引的。
我的问题是:假设一个主键有两个字段或者更多,而查询的时候只用了其中一个或者几个?在速度上有多大的影响?
第二,在没有过滤条件的情况下,也没有用到索引,查询的时候就是全表扫描?

展开
收起
落地花开啦 2016-02-08 15:24:23 2383 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    如果你的索引是 key( equipid,signalid), where 条件为 equipid=? 是可以使用索引的,而 where 条件 signalid=? 是不会使用索引,也就是说如果你是复合索引仅会使用“最左前缀”,mysql的innodb和myisam(?)会遵循这个原则,其他存储引擎不太清楚。

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

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像