应用程序慢如牛,缘由多多,多是网络的缘由、多是系统架构的缘由,还有多是数据库的缘由。程序员
那么如何提升数据库SQL语句执行速度呢?有人会说性能调优是DBA的事,然而性能调优跟程序员们也有莫大的关系。数据库
程序中嵌入一行行SQL语句,若是使用了一些优化小技巧,定能达到事半功倍的效果。服务器
技巧1 比较用算符能用“=”就不用“<>”
网络
“=”增长了索引的使用概率。架构
技巧2 明知只有一条查询结果,那请使用“limit 1”性能
"limit 1"能够避免全表扫描,找到对应结果就不会再继续扫描了。测试
技巧3 为列选择合适的数据类型优化
能用“tinyint”就不用“smallint”,能用“smallint”就不用“int”,磁盘和内存小孩越小越好嘛。spa
技巧4 将大的DELETE,UPDATE or INSERT 查询变成多个小查询索引
能写一个几十行、几百行的SQL语句是否是显得逼格很高?然而,为了达到更好的性能以及更好的数据控制,你能够将他们变成多个小查询。
技巧5 使用“union all” 代替 “union”,若是结果集容许重复的话
由于“union all”不去重,效率高于“union”
技巧6 为得到相同结果集而屡次执行,请保持SQL语句先后一致
这样作是为了充分利用查询缓冲。
技巧7 尽可能避免使用“select *”
若是不查询表中全部的列,尽可能避免使用 SELECT *,由于它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。
技巧8 WHERE 、JOIN、ORDER BY 子句里尽可能被索引
只是“尽可能” 而已,并非说全部列。因地制宜,根据实际状况进行调整,由于有时索引太多也会下降性能。
技巧9 使用 LIMIT 实现分页逻辑
不只提升了性能,同时减小了没必要要的数据库和应用间的网络传输。
技巧10 使用“explain” 关键字查看执行计划
“explain” 能够查看索引使用状况以及扫描的行。
其余
SQL调优方法不少,一样的查询结果能够有不少种不一样的查询方式。其实最好的方法就是在开发环境中用最贴近真是的数据集和硬件环境进行测试,而后再发布到生产环境中。