【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
1.表结构如下:
其中 equipid和signalid是主键,然后我执行两个查询:
会发现第一个查询语句只用了equipid过滤条件进行过滤,使用explain extended查看查询信息,发现竟然没有用到索引。
而第二个语句用了两个主键的字段进行过滤,就出现了使用主键索引的情况。
再看看下面这个图:
单的一个查询,没有任何过滤条件,也是没有使用任何索引的。
我的问题是:假设一个主键有两个字段或者更多,而查询的时候只用了其中一个或者几个?在速度上有多大的影响?
第二,在没有过滤条件的情况下,也没有用到索引,查询的时候就是全表扫描?
1、不知道mysql有没有前缀索引的概念。
2、select * from tab;
这样的语句基本上都是全表扫描了,强制用索引效率可能还更慢。
大量数据前提下,有索引和没索引在速度上,应该是天壤之别!有索引,绝对很快。你可以做个几百W或更多试一试。
给a+b+c做联合索引
适用于
where a
where a,b
where a,b,c
不适用于
where b
where b,c
where c
最好不要使用*
加复合索引啊
查询字段属性进最好使用字段名。不要使用*号查。如果数据很多就会速度很慢的局面。