腾讯大讲堂48-数据库查询优化浅析
更新时间:2023-08-06 19:23:01 阅读量: 实用文档 文档下载
- 腾讯大讲堂视频推荐度:
- 相关推荐
腾讯大讲堂第四十八期研发管理部大讲堂主页:http://www.77cn.com.cn/class 与讲师互动:http://www.77cn.com.cn/group/class
数据库查询优化浅析
Alexyang 无线产品部 20081013
提纲应用级查询优化 SQL语句的解析方式 SQL语句的解析方式 索引的本质以及调优 分析执行计划
提纲应用级查询优化 SQL语句的解析方式 SQL语句的解析方式 索引的本质以及调优 分析执行计划
需要性能/ 一、需要性能/查询优化的原因影响性能的因素:整个系统环境 软件:操作系统、中间件、应用程序、数 据库 硬件:CPU、内存、磁盘、网络 硬件:CPU、内存、磁盘、网络 上面任何一个都可能成为系统的性能瓶颈
系统级性能优化的点操作系统:虚拟内存、文件系统格式、系统参数 (LINUX) LINUX) 中间件:日志、部署时去掉打印信息(打印信息 对性能影响较大)、工作线程数、连接池、JAVA垃 对性能影响较大)、工作线程数、连接池、JAVA垃 圾回收模式、JAVA内存设置 圾回收模式、JAVA内存设置 应用程序:使用连接池、合理的业务设计、尽可 能不要对数据库操作进行同步、JAVA程序的性能 能不要对数据库操作进行同步、JAVA程序的性能 优化(参考网络资源) 数据库:工作线程、I/O线程、内存配置等、索引 数据库:工作线程、I/O线程、内存配置等、索引 的利用、SQL改写、服务器代码改进 的利用、SQL改写、服务器代码改进
这里我们主要考虑以下两个点应用层存在问题。 数据库层存在问题。
合理的逻辑设计以某实际应用系统为例,原来任务管理模块并发用户数只有15个, 以某实际应用系统为例,原来任务管理模块并发用户数只有15个, 该模块用来显示所有待处理的任务,以及每个任务的里程碑个数。 经过检查,发现其实现如下: 执行语句SELECT 执行语句SELECT COUNT(*) FROM TASK; select task_id from task order by task_id desc; 对结果集中的每条记录 { SELECT * FROM TASK_STEP WHERE TASK_STEP.TASK_ID=? } 分析:如果TASK表有10000条记录,需要向数据库发送10000个查询。 分析:如果TASK表有10000条记录,需要向数据库发送10000个查询。 假设通讯使用了100ms,每个查询的执行时间是20ms。使用的时间为: 假设通讯使用了100ms,每个查询的执行时间是20ms。使用的时间为: (100ms+20ms)*10000=1200s=20min 100ms+20ms)*10000=1200s=20min
解决方案select task_step.* from task,task_step where task_step.task_id = task.task_id order by task.task_id desc; 备注: 1)继续对task_step.*处理,减少网络通讯量。 )继续对task_step.*处理,减少网络通讯量。 2)默认看到自己的任务,提供连接查询其他任务。
尽量使用数据库提供的功能在某实际应用系统中,对于每个任务、日记等
对象都有一 个唯一的ID,该系统使用数据库的一个表的一条整型记录 个唯一的ID,该系统使用数据库的一个表的一条整型记录 来维持。 当新建一个任务时,取用该表的当前记录值,操作完毕后 加1。为了防止不同对象使用相同ID,使用如下方法来保 。为了防止不同对象使用相同ID,使用如下方法来保 证: int temp = 0; synchronized{ 执行SELECT 执行SELECT * FROM OBJECTID; temp = 结果集中的id 结果集中的id update 结果集中的id(id+1) 结果集中的id(id+1) } insert into task values(temp,...);
解决方案create sequence myseq increment by 1; insert into task values(myseq.nextval,...);
二、SQL语句的解析方式 二、SQL语句的解析方式
SQL语句的处理过程 SQL语句的处理过程
语法/ 语法/词法分析负责解析SQL命令和过程性语句块 过滤注释,解析参数 使用成熟的工具(如YACC/LEX )生成 灵活的语法规则定义 便于语法的扩展与修改 生成统一格式的语法树
对应的语法结构Select * from t3;par_from_tv_list _struct结构
t1, t2,par_from_tv_list _struct结构
par_from_tv_list _struct结构
par_from_tv_list _t* from_tv_list; par_from_tv_t* from_tv
规 则 2
par_from_tv_list_ t* from_tv_list; par_from_tv_t* from_tv 规 则 1 par_from_tv_t* from_tv
par_from_tv_stru ct结构 T1
par_from_tv_stru ct结构 T2
par_from_tv_stru ct结构 T3
语义分析数据库对象名字解析合法性检查 内部ID的转换
权限检查 语法树数据结构的简化与预处理 DDL语句分解为对系统表的DML 视图对象的替换等
代价优化器接受语义分析的输入 统计信息的分析数据分布 统计直方图
代价的计算基于统计信息 操作符号的选择
基于成本的最优执行路径选择 生成优化的执行计划
基于操作符的执行计划物理操作符功能简单专一,完成特定的数据库操作 如:连接,过滤,排序等
执行计划操作符的组合,构成树型的执行计划 执行时,数据从叶子向根流动 在根汇集成结果集,或者得到结果状态 计划被自动缓存,以备重用
实例分析select * from A, B, C, D where A.a = B.b and B.b1 = C.c and C.c1 = D.d and A.a1 >123
正在阅读:
腾讯大讲堂48-数据库查询优化浅析08-06
民办教育机构申报审批表09-22
r230红灯同时闪的解决方法12-24
木屑颗粒机的使用技巧和常用故障及排除方法02-28
全套2018年新版ISO9001与ISO14001质量环境管理手册和程序文件及记录表格09-02
高考考前复习资料6--高中数学立体几何部分错题精选03-08
2017版 华工《线性代数与概率统计》(工程数学)随堂练习参考答案10-02
经典参考两篇离职感言02-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 腾讯
- 大讲堂
- 浅析
- 优化
- 数据库
- 查询
- 48
- 2020《囧妈》最新电影观后感及影评精选3篇.doc
- 大学生网络购物调查报告
- 学校财产管理制度
- 1 RSLinx Classic 通信软件 安装步骤
- 纳米SiO2光学特性研究
- 控烟监督员培训
- 植入式广告法律监管机制研究
- 湖南师范大学硕士研究生学位论文开题报告书
- 第四章电控电子点火系统故障诊断
- 推荐精品语文西师版小学二年级下册《池上》第1课时优质课教案
- 软件架构师应该知道的97件事 - CSDN资讯
- 2012年临沂事业单位考试综合类真题解析
- 2012届高考物理总复习重难点诠释、典例剖析课件:第三章 牛顿运动定律 第1讲 牛顿第一、第三定律
- 下列选项中不属于结构化程序设计方法的是( )。 A.自顶向下B.逐步求
- 如何治疗宝宝咽喉炎
- 2013届中考化学知识点归纳复习题14
- 18课漫步中外建筑艺术
- 第6章 三菱FX系列PLC基本顺控指令-1
- 2011年Q1季度游戏市场数据分析图示
- 遥感影像波段组合