常用SQL语句优化技巧总结
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语句优化技巧总结相关推荐
- 常用SQL语句优化技巧
除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好:stringsql = "select * from people p where ...
- php面试专题---MySQL常用SQL语句优化
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...
- 常用SQL语句书写技巧-
SQL结构化查询字符串的改写,是实现数据库查询性能提升的最现实.最有效的手段,有时甚至是唯一的手段,比如在不允许大幅度修改现有数据库结构的情况下. 通过优化SQL语句提高查询性能的关键是: ? 根据实 ...
- mysql常用sql语句优化
转载自:http://www.cnblogs.com/gomysql/p/3632209.html 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素.当然还有其他方 ...
- ORACLE百万记录SQL语句优化技巧
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- Mysql删除语句优化_MySQL性能优化之常用SQL语句优化
SQL性能优化的目标:至少要达到range级别,要求是ref级别,consts最高.[阿里巴巴JAVA开发手册] 说明: 1).consts单表中最多只有一个匹配行(主键/唯一索引),在优化阶段即可读 ...
- sql语句优化技巧 sql 语句技巧
转载来源 1.应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数 ...
- mysql like in 数组_Web前端学习教程之常用的MySQL优化技巧
想要成为一个高薪Web前端工程师,除了需要了解前端三要素以及常用的框架外,数据库知识同样不可忽视.目前市场上比较流行的数据库有MySQL.Oracle.Redis,今天千锋郑州老师就给大家分享一些常用 ...
- SQL性能优化技巧,常见优化10经验,数据库查询好慢,还能怎么办
我熟练应用ctrl c和ctrl v 开发curd代码好多年了. mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题. 遇到这种问题,我们一般也会想到是因为索引. 那 ...
最新文章
- msf生成linux shellcode,MSF-Shellcode生成和使用
- Spring Boot中使用AOP统一处理Web请求日志
- mac命令行将输出写入文件_如何在Linux中使用命令行将PDF文件转换为可编辑文本...
- Unix/Linux环境C编程入门教程(27) 内存那些事儿
- Cloud一分钟 |乐视系近亿元资产被查封;快手推出新社区产品,取名“蹦迪”;高通:已终止收购恩智浦的交易...
- 问题:连接查询和子查询的区别和连接及优劣?
- 查找交换机某端口连接的主机IP地址
- Sass学习笔记 -- 混合器
- html email template
- 【运动学】基于matlab GUI平衡车一阶倒立摆仿真【含Matlab源码 1258期】
- PHP获取MP3时长类
- linux添加mx记录,在C linux中查询MX记录
- X-Plane飞行模拟器购买安装
- [OpenCV实战]39 在OpenCV中使用ArUco标记的增强现实
- 3D游戏中角色的换装原理-落樱之剑实例图文详细剖析(JME3,JMonkeyEngine游戏开发)...
- 网络编程学习笔记-套接字编程-socket
- 虽然Orbit被砍掉了,还是可以窥见一斑
- C语言程序设计基础知识——谭浩强版
- testjs插件类库组织与管理
- Nginx学习日记1
热门文章
- Define and Publish Platform Events
- 修改sga后oracle打不开的解决方法
- VBS 脚本语言-利用vbs调用ie浏览器访问百度查天气实例演示
- esp8266烧写机智云固件方法
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
- 第四周实践项目7 多项式求和
- [YTU]_2619 (B 友元类-计算两点间距离)
- 添加当前文件夹及其子文件夹到以及别而的文件夹到当前路径
- 最优二叉搜索树探究【C/C++】
- Pytorch中的optimizer.zero_grad和loss和net.backward和optimizer.step的理解