博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql SQL优化
阅读量:5995 次
发布时间:2019-06-20

本文共 788 字,大约阅读时间需要 2 分钟。

SQL优化 1.SQL优化是一个分析,优化,再分析,再优化的过程。站在执行计划的角度来说,我们这个过程,就是在不断的减少rows的数量。主要步骤有: 1.1)通过explain 来查看执行计划。通过这一步骤,我们能够分析出,该语句有没有走索引,索引合不合理的重要依据。《读懂MySQL执行计划》 1.2)缩小范围。例如使用 < > ,between …and。来缩小扫描范围。(对于该类,通常可优化于limit,时间范围等SQL,而且非常有效)。 1.3)减少连接数量 (对于连接查询,我们必须尽可能减少每个子连接的结果集数量,只包含有效数据)。 4)避免类型转换。之前我们就谈过,隐式类型转换是最容易疏忽的慢SQL 1.5)对于主键连续时而且允许的情况下,我们甚至可以使用max(id)来代替count(*)来统计用户数。 1.6)用 in 代替 or, 少用like,避免使用函数运算。 2.系统拆分   对于互联网应用,特别是高并发应用来说,我们遇到多表连接导致慢SQL影响性能时。我们不应一味的追求在SQL上如何优化。更应该考虑这样的设计是否合理,   是否有拆分的可能性。我甚至认为:系统拆分才是解决慢SQL的终极方法。 3.报表库   对于报表库中,有些SQL是无法再进行优化的,为什么这么说呢?没有在线运算,没有离线运算,统计报表如何出?在一定量级的数据表中,   做统计报表。即使合理的索引,也会比较慢,这时建议将这些SQL放入特定的报表库执行。以免造成主库压力。性能下降。对主流程造成影响。 4.表结构设计合理性  业务关联表的结构设计,要具有合理性,尽量在一张表中就能设计出关联关系,尽量避免left|right|inner|join等来链表查询

转载于:https://www.cnblogs.com/light-zhang/p/8383580.html

你可能感兴趣的文章
Linux软件安装包中devel与非devel包之间的区别
查看>>
Java并发编程之ConcurrentHashMap(转)
查看>>
从846家初创倒下 看A轮融资后的悬崖
查看>>
Oracle中merge into的使用 (转)
查看>>
SharePoint 2013 自定义扩展菜单
查看>>
Chapter 1 Securing Your Server and Network(2):管理服务的SIDs
查看>>
[20171204]nc快速判断端口是否打开2.txt
查看>>
一张图看懂阿里云网络产品【八】高速通道
查看>>
free命令、buffer与cache的区别
查看>>
我的Android进阶之旅------&gt;解决Error: specified for property 'mergedManifest' does not exist....
查看>>
Unix/Linux运维首选工具Xmanager Enterprise 3.0的使用教程
查看>>
jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)
查看>>
ActivityGroup中EditText无法删除的问题
查看>>
Dora.Interception: 一个为.NET Core度身定制的AOP框架
查看>>
【数学题】求一求面积
查看>>
移动安全案例:iPad在Ozarks银行的应用
查看>>
超过1/3中小企业不注重数据安全备份
查看>>
面向大容量存储 宝德大数据服务器评测
查看>>
安全可信 西门子IT云服务重磅出击
查看>>
INTERSPEECH 2017系列 | 语音唤醒技术
查看>>