由于MySQL自动将主键加入到二级索引(自行建立的index)里,所以当select的是主键或二级索引就会很快,select *就会慢。因为有些列是没在索引里的
 假设CA有1kw人咋整,那我这个索引只起了前一半作用。
 
 
 所以用复合索引,那么复合索引的列索引顺序也很重要,首先肯定要把最重要的像分类的排第一,其次是索引的区分度高的(性别只能分出两类,索引效果N/2,不如居住的state,索引效果N/48)
 最重要的是你的查询,如下两图,看看怎么能更好的区分,后一种查询的row更少
 
 
 假设复合索引是对(state, points)复合的,那么用其排序也是有说道的,下面三个都是能利用到索引的排序,因为索引先将a排序然后按b排序存储的,如图所示(当然如果WHERE state = 'CA’然后对points排序也肯定是利用到了索引的)
- state
 - state, points
 - state DESC, points DESC

 





![[工业自动化-11]:西门子S7-15xxx编程 - PLC从站 - 分布式IO从站/从机](https://img-blog.csdnimg.cn/b29f3b4833b24a32bfb7da45313dbe26.png)












