-
sql语句大全之sql性能优化、查询提速总结
sql性能优化、查询提速总结
这次sql性能优化,不讨论缓存服务器如redis等来增强,仅从表字段设置和业务操作角度考虑。
场景1:
表数据量大,比如几百上千万的流水数据表、跑批过程表查询。
1、根据业务做分库分表存储,降低表的数量级。比如按流水时间或者场景进行分表保存
2、增加常用查询表字段的索引
3、降低不必要查询字段查询,通过过滤不必要的字段查询,仅仅过去业务所需字段,当查询数量级上升一定层级,可以降低数据库服务器的计算压力和流量压力。
4、
场景二:
表连接频繁的表
提升性能办法:
1、有些常用表一直被连接起来进行统计,所以没理由不能先预暂存起来,在此基础上进行查询
2、当出现数据量大的表连接查询时候,可以考虑先从表中查询出临时表再做连接查询,这些避免大量笛卡尔积计算。因为工作就遇到一些报表sql设计,其中有许多表连接查询,因为设计不好导致查询效率长度几秒甚至更长。此时可以通过分析sql执行先后顺序,进行一定嵌套查询出子集再进行相应表连接查询,这样就极大的提升了查询效率。
场景三:
判断某些数据是否存在某些表中
1、判断表的数据量多少,然后根据设置查询的先后关系使用exits或in来查询所需的数据
场景四:
批量操作,如删除、更新
1、因为有事物的关系、数据量打的更新、删除操作会影响性能,出错回滚的代价很大。此时缩小批量操作来提高性能是可行的。
场景五:
少使用视图
1、视图虽然封装sql的表,但如果视图多,或者关系相互调用,会造成不好维护,过度依赖后,很难从全局层面来优化sql的执行效率,因为视图容易掩盖一些效率低下的sql。
场景六:
使用like场景
1、当有些业务查询需要使用like查询操作时候,要考虑like执行效率低下的情况,如果可以先使用其他非字段条件查询得到子集在进行like查询会效率更高的。
场景七
表字段设置不精确
1、尽量根据业务需求设计长度够用数据类型即可,比如业务流水号32位 ,就要设置为varchar(32) 别觉得没关系设置成varcahr(50)等, 是枚举类型就尽量设置成该类型,数字类型的如1-9的,就可设置为tinyint
待继续完善
---------------------
作者:仰望天空YF
来源:CSDN
原文:https://blog.csdn.net/yunfeng482/article/details/79146100
版权声明:本文为博主原创文章,转载请附上博文链接!
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式