1 通过变量的方式来设置参数
好:
stringsql = "select * from people p where p.id = ? ";
坏:
stringsql = "select * from people p where p.id = "+id;
 
数据库的SQL文解析和执行计划会保存在缓存中,但是SQL文只要有变化,就得重新解析。
“…where p.id = ”+id的方式在id值发生改变时需要重新解析,这会耗费时间。

2 不要使用select *

使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的,
比如text类型的字段通常用来保存一些内容比较繁杂的东西,如果使用select *则会把该字段也查询出来。

3 谨慎使用模糊查询

stringsql = "select * from people p where p.id like 'parm1%' ";
坏:
stringsql = "select * from people p where p.id like '%parm1%' ";
当模糊匹配以%开头时,该列索引将失效,若不以%开头,该列索引有效

4

用IN的SQL性能总是比较低的,从SQL执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: 
SQL试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询;
可见用IN的SQL至少多了一个转换的过程;一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了

常用SQL语句优化技巧总结相关推荐

  1. 常用SQL语句优化技巧

    除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好:stringsql = "select * from people p where ...

  2. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  3. 常用SQL语句书写技巧-

    SQL结构化查询字符串的改写,是实现数据库查询性能提升的最现实.最有效的手段,有时甚至是唯一的手段,比如在不允许大幅度修改现有数据库结构的情况下. 通过优化SQL语句提高查询性能的关键是: ? 根据实 ...

  4. mysql常用sql语句优化

    转载自:http://www.cnblogs.com/gomysql/p/3632209.html 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素.当然还有其他方 ...

  5. ORACLE百万记录SQL语句优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. Mysql删除语句优化_MySQL性能优化之常用SQL语句优化

    SQL性能优化的目标:至少要达到range级别,要求是ref级别,consts最高.[阿里巴巴JAVA开发手册] 说明: 1).consts单表中最多只有一个匹配行(主键/唯一索引),在优化阶段即可读 ...

  7. sql语句优化技巧 sql 语句技巧

    转载来源 1.应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数 ...

  8. mysql like in 数组_Web前端学习教程之常用的MySQL优化技巧

    想要成为一个高薪Web前端工程师,除了需要了解前端三要素以及常用的框架外,数据库知识同样不可忽视.目前市场上比较流行的数据库有MySQL.Oracle.Redis,今天千锋郑州老师就给大家分享一些常用 ...

  9. SQL性能优化技巧,常见优化10经验,数据库查询好慢,还能怎么办

    我熟练应用ctrl c和ctrl v 开发curd代码好多年了. mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题. 遇到这种问题,我们一般也会想到是因为索引. 那 ...

最新文章

  1. msf生成linux shellcode,MSF-Shellcode生成和使用
  2. Spring Boot中使用AOP统一处理Web请求日志
  3. mac命令行将输出写入文件_如何在Linux中使用命令行将PDF文件转换为可编辑文本...
  4. Unix/Linux环境C编程入门教程(27) 内存那些事儿
  5. Cloud一分钟 |乐视系近亿元资产被查封;快手推出新社区产品,取名“蹦迪”;高通:已终止收购恩智浦的交易...
  6. 问题:连接查询和子查询的区别和连接及优劣?
  7. 查找交换机某端口连接的主机IP地址
  8. Sass学习笔记 -- 混合器
  9. html email template
  10. 【运动学】基于matlab GUI平衡车一阶倒立摆仿真【含Matlab源码 1258期】
  11. PHP获取MP3时长类
  12. linux添加mx记录,在C linux中查询MX记录
  13. X-Plane飞行模拟器购买安装
  14. [OpenCV实战]39 在OpenCV中使用ArUco标记的增强现实
  15. 3D游戏中角色的换装原理-落樱之剑实例图文详细剖析(JME3,JMonkeyEngine游戏开发)...
  16. 网络编程学习笔记-套接字编程-socket
  17. 虽然Orbit被砍掉了,还是可以窥见一斑
  18. C语言程序设计基础知识——谭浩强版
  19. testjs插件类库组织与管理
  20. Nginx学习日记1

热门文章

  1. Define and Publish Platform Events
  2. 修改sga后oracle打不开的解决方法
  3. VBS 脚本语言-利用vbs调用ie浏览器访问百度查天气实例演示
  4. esp8266烧写机智云固件方法
  5. STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
  6. 第四周实践项目7 多项式求和
  7. [YTU]_2619 (B 友元类-计算两点间距离)
  8. 添加当前文件夹及其子文件夹到以及别而的文件夹到当前路径
  9. 最优二叉搜索树探究【C/C++】
  10. Pytorch中的optimizer.zero_grad和loss和net.backward和optimizer.step的理解