参考文章:https://blog.csdn.net/haifu_xu/article/details/16864933
https://blog.csdn.net/xiaoyao8903/article/details/53256960
首先这个问题一直存在,但是在实际开发中还是写出各种性能差sql。今天就一点点的来梳理一下,恰好我目前工作中的sql 写的很慢,这篇文章刚好可以帮我去优化一下我的代码。
1. 一个最大的原则就是能够使得sql用到索引。
怎么用到索引,我们就来分析一下explain的用法:
我关注的有一个字段就是rows ,扫描的条数越多,性能就越差。
type 类型,性能排序:
ALL < index < range ~ index_merge < ref < eq_ref < const < system
key 真正使用到的索引。
ref 涉及到关联查询 ,明天需要再看看。
rows 返回的行数越少性能越好。
extra Using temporary 和 Using filesort 需要优化
之前看过很多类似的sql优化的文章,也知道一些小的技巧,比如取尽量少的字段,索引列不要作运算,少用子查询等等。