1.比较运算符能用‘=’就不用‘<>’
“=”增加了索引的使用几率
2.事先知道只有一条查询结果时,使用‘limit 1’
“LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了
3. 选择合适的数据类型很重要
能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,磁盘和内存消耗越小越好
4.大的delete,update or insert查询变成多个小查询
速度快
5. union all 代替union 如果结果集可以重复的话
union all 不去重 效率高
6. 尽量避免 select *
如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。
7. where 子句里面的列尽量被索引
提高性能
8.join子句里面的列尽量被索引
9.order by 子句里面的列尽量被索引
10.使用 limit 实现分页逻辑好处多
不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输
11.使用EXPLAIN 字去查看执行计划
可以检查索引使用情况以及扫描的行
12.用where 子句代替order by
性能高
13.尽量不使用游标
性能变慢,占用内存
14.索引不是越多越好。oracle超过4个就性能改善不了多少
几篇不错的SQL优化文章:
https://www.cnblogs.com/williamjie/p/9389530.html