鉴于公司分享会,结合公司项目数据特地写下自己的理解,欢迎大家纠正,予以补充
当前主流计算机性能数据
延迟响应时间:表示硬件的突发处理能力
宽带吞吐量:代表硬件的持续处理能力
数据库访问优化法则简介
正常情况下,一般设备的瓶颈点我们都能快速的定位到,比如下载时候的网络速度回事瓶颈点,复制文件的时候硬盘读取速度回事瓶颈点,要正确优化SQL ,我们需要快速定位性能的瓶颈点,也就是快速找到主要的开销在哪里
数据访问的漏斗法则
这个优化法则归纳为5个层次:每一层优化法则都是解决其对应硬件的性能问题,所以带来的性能提升比例也不一样
减少数据访问 1~1000 低 创建并使用正确的索引 只通过索引访问数据 优化sql的执行计划
返回更少数据 1~100 低 数据分页处理(客户端分页,服务端分页,数据库分页) 只返回需要的字段
减少交互次数 1~20 低 比如 一次提交所有数据, 使用存储过程,查询数据使用in list+,优化业务逻辑
减少服务器CPU开销 1~5 低 使用绑定量 减少比较操作 比如like运算
利用更多资源 @~10 高 数据库并行访问数据
优化的主要考虑方向
1.查询的执行计划(即描述了一个查询是如何被执行的)
2.什么索引被使用,什么索引本来应该被用到,但是又没有使用。(因为此时存在缺失索引的性能问题)
3.I/O的状态(包含逻辑I/O操作和物理的I/O操作)
4.查询执行消耗的时间
5.查询等待其他资源消耗的时间
6.查询在等待什么资源
sql查询数据库都进行了什么操作
待续...