应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。
那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系。

程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果。技巧1 比较运算符能用 “=”就不用“<>”
“=”增加了索引的使用几率。技巧2 明知只有一条查询结果,那请使用 “LIMIT 1”
“LIMIT 1”可以避免全表扫描,找到对应结果就不会再继续扫描了。技巧3 为列选择合适的数据类型
能用TINYINT就不用SMALLINT,能用SMALLINT就不用INT,道理你懂的,磁盘和内存消耗越小越好嘛。技巧4 将大的DELETE,UPDATE or INSERT 查询变成多个小查询
能写一个几十行、几百行的SQL语句是不是显得逼格很高?然而,为了达到更好的性能以及更好的数据控制,你可以将他们变成多个小查询。

技巧5 使用UNION ALL 代替 UNION,如果结果集允许重复的话因为 UNION ALL 不去重,效率高于 UNION技巧6 为获得相同结果集的多次执行,请保持SQL语句前后一致
这样做的目的是为了充分利用查询缓冲。
比如根据地域和产品id查询产品价格,第一次使用了:

那么第二次同样的查询,请保持以上语句的一致性,比如不要将where语句里面的id和region位置调换顺序。技巧7 尽量避免使用 “SELECT *”
如果不查询表中所有的列,尽量避免使用 SELECT *,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。

技巧8 WHERE 子句里面的列尽量被索引
只是“尽量”哦,并不是说所有的列。因地制宜,根据实际情况进行调整,因为有时索引太多也会降低性能。技巧9 JOIN 子句里面的列尽量被索引
同样只是“尽量”哦,并不是说所有的列。技巧10 ORDER BY 的列尽量被索引
ORDER BY的列如果被索引,性能也会更好。技巧11 使用 LIMIT 实现分页逻辑
不仅提高了性能,同时减少了不必要的数据库和应用间的网络传输。技巧12 使用 EXPLAIN 关键字去查看执行计划
EXPLAIN 可以检查索引使用情况以及扫描的行。其他
SQL调优方法有很多种,同样的查询结果可以有很多种不同的查询方式。其实最好的方法就是在开发环境中用最贴近真实的数据集和硬件环境进行测试,然后再发布到生产环境中。

多个select 多个列_程序员,你还在 Select * 吗?相关推荐

  1. 【源码+演示】高考加油!HTML+CSS特效文字祝福_程序员祝福高考学子旗开得胜!

    又是一年盛夏至,愿高三学子高中毕业日,即是高中名校时! 本篇为大家带来3款HTML+CSS制作出的小项目,为高考学子加油助威,愿他们旗开得胜,金榜题名![源码+演示]高考加油!HTML+CSS特效文字 ...

  2. 2030年,程序员工资还能达到现在的水平吗?

    背景: 汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号[软件老王],关注不迷路. 1.2030年,程序员工资还能达到现在的水平吗? 老王观点: (1)认为行业的工资水平是跟国家经济这个大池子 ...

  3. 想做程序员但还在迷惘和摸索吗?

    自从上大学选择了计算机专业后,我就深深地热爱上了软件开发,并已经立志把自己的毕生精力都奉献给软件开发事业.一直以来,我都充满了激情去学习,去写程序,去接受新的知识和技术.几年来,付出很多,收获很多,也 ...

  4. mybatis 查询的时间不对_程序员,Mybatis 你踩过坑吗?

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 ...

  5. mysql会对同时读取加锁吗_程序员经典面试题,MySQL并发读写的时候,都是需要加锁的么?...

    这是一道经典的程序员面试题,在Mysql中,如果有多个事务同时访问同一行数据,那么需要加锁么?我们都知道,在Mysql中有行锁,如果有多个事务同时修改同一行数据,那么需要加锁来防止并发问题.那么,如果 ...

  6. python从键盘输入列表有缺陷_程序员必知的Python陷阱与缺陷列表-阿里云开发者社区...

    代码看起来可以工作,但不是以你"想当然""的方式.如果一段代码直接出错,抛出了异常,我不认为这是陷阱.比如,Python程序员应该都遇到过的"UnboundLo ...

  7. mysql程序员面试题_程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)...

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦. 微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 1.数据库三范式是什么? 第一范式(1 ...

  8. 电脑怎么分屏2个显示器_程序员一台电脑装2个显示屏?因为专业

    使用电脑双屏显示已经十分普及,并不一定只有电影里面可以看到. 笔记本通过显示器输出.电脑通过投影输出.单个主机通过两台显示输出,均属于双屏显示. 当然,双频显示可以极大的提高工作效率. 以程序员为例, ...

  9. 实现pv uv统计_程序员修仙之路优雅快速的统计千万级别uv

    菜菜,咱们网站现在有多少PV和UV了? Y总,咱们没有统计pv和uv的系统,预估大约有一千万uv吧 写一个统计uv和pv的系统吧 网上有现成的,直接接入一个不行吗? 别人的不太放心,毕竟自己写的,自己 ...

  10. java压测请求线程数_程序员撕开京东 618 大促压测的另一面 | 原力计划

    作者 | 天涯泪小武 责编 | 王晓曼 出品 | CSDN博客 前天618大促演练进行了全链路压测,在此之前刚好我的热key探测框架也已经上线灰度一周了,小范围上线了几千台服务器,每秒大概接收几千个k ...

最新文章

  1. Codeforces.1051F.The Shortest Statement(最短路Dijkstra)
  2. 七、使用栈实现综合计算器(中缀表达式)
  3. Google AI 研发医疗新模型,预测死亡率比医院高出10%
  4. unity 背包选中_Unity背包系统实现
  5. 如何管理企业刺头人物!
  6. 再论PID,PID其实很简单。。。
  7. 各种模板(数学数论字符串)
  8. 记录遇到的Python陷阱和注意点
  9. Oracle常见五个服务的作用
  10. CAPL可以读写的几种文件
  11. 想系统的学习一下项目管理,有什么好的书籍推荐吗?
  12. 快速了解Redis、Cachecloud集群的搭建及管理
  13. 转载_tolua之wrap文件的原理与使用_写的非常好!
  14. DH坐标系的建立与DH表—机器人学
  15. 什么是“光照度(Illuminance)”?
  16. apt cyg 安装php,Windows下安装Cygwin及apt-cyg
  17. 让进度条颜色渐变的shader
  18. 刘强东牛津大学经典演讲:我人生的4个关键抉择,都是怎么做的?
  19. Justep X5 Studio
  20. 物联网卡为什么不能更换设备?想更换怎么办?

热门文章

  1. bzoj 4556 字符串
  2. 微软物联网发掘万物互联的价值
  3. 构造一个简单的linux系统
  4. windows安装软件最好使用独立的文件夹
  5. 转:浅析 Java Thread.join()
  6. java get提交中文乱码_java中form以post、get方式提交数据中文乱码问题总结
  7. C# Serilog日志框架
  8. Layui layui-soul-able 组件 表格列进行拖拽
  9. go对get、post请求封装
  10. 2021-11-17