-
order by不要用filesort,建立索引,将order放在最右边,就是排序好的。
表
查询语句及其explain
两个点,一个是type=all,一个是Extra=using filesort。
尝试对where所有字段建立索引,然后explain,type好了一点,但是Extra=using filesort还在
思路:中间的>使得索引断了,order by不能利用索引的最后一个字段是排序的,我们只建立where前后的索引。可以看到下面,file sort没了。
-
左右连接建立索引要建在被驱动表连接的列上,而且要小表驱动大表,调高join buffer
表
查询
给被驱动表book连接的列加上了索引后,被驱动表的type变为ref,row减小了。
给驱动表class连接的列加上索引后,驱动表的type变为index(也就是遍历索引),但是row不变。
左连接和右连接建立索引要加在被驱动表上,因为连接的原理就是对于驱动表的每一列,然后过滤被驱动表,被驱动表是要多次读取的。
数据库索引优化案例
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 通过 EXPLAIN 浅析数据库查询优化方法 EXPLAIN 思维导图 知识点 explain 或者 desc 命...
- 转载 https://segmentfault.com/a/1190000008131735 简介MySQL 提供...