腾讯大讲堂48-数据库查询优化浅析_第1页
腾讯大讲堂48-数据库查询优化浅析_第2页
腾讯大讲堂48-数据库查询优化浅析_第3页
腾讯大讲堂48-数据库查询优化浅析_第4页
腾讯大讲堂48-数据库查询优化浅析_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

腾讯大讲堂第四十八期研发管理部大讲堂主页:/class与讲师互动:/group/class腾讯大讲堂48-数据库查询优化浅析数据库查询优化浅析Alexyang无线产品部腾讯大讲堂48-数据库查询优化浅析提纲应用级查询优化SQL语句的解析方式索引的本质以及调优分析执行计划腾讯大讲堂48-数据库查询优化浅析提纲应用级查询优化SQL语句的解析方式索引的本质以及调优分析执行计划腾讯大讲堂48-数据库查询优化浅析一、需要性能/查询优化的原因影响性能的因素:整个系统环境软件:操作系统、中间件、应用程序、数据库硬件:CPU、内存、磁盘、网络上面任何一个都可能成为系统的性能瓶颈腾讯大讲堂48-数据库查询优化浅析系统级性能优化的点操作系统:虚拟内存、文件系统格式、系统参数(LINUX)中间件:日志、部署时去掉打印信息(打印信息对性能影响较大)、工作线程数、连接池、JAVA垃圾回收模式、JAVA内存设置应用程序:使用连接池、合理的业务设计、尽可能不要对数据库操作进行同步、JAVA程序的性能优化(参考网络资源)数据库:工作线程、I/O线程、内存配置等、索引的利用、SQL改写、服务器代码改进腾讯大讲堂48-数据库查询优化浅析这里我们主要考虑以下两个点应用层存在问题。数据库层存在问题。腾讯大讲堂48-数据库查询优化浅析合理的逻辑设计以某实际应用系统为例,原来任务管理模块并发用户数只有15个,该模块用来显示所有待处理的任务,以及每个任务的里程碑个数。经过检查,发现其实现如下:执行语句SELECTCOUNT(*)FROMTASK;selecttask_idfromtaskorderbytask_iddesc;

对结果集中的每条记录

{SELECT*FROMTASK_STEPWHERETASK_STEP.TASK_ID=?}分析:如果TASK表有10000条记录,需要向数据库发送10000个查询。假设通讯使用了100ms,每个查询的执行时间是20ms。使用的时间为:(100ms+20ms)*10000=1200s=20min腾讯大讲堂48-数据库查询优化浅析解决方案selecttask_step.*fromtask,task_stepwheretask_step.task_id=task.task_idorderbytask.task_iddesc;备注:1)继续对task_step.*处理,减少网络通讯量。2)默认看到自己的任务,提供连接查询其他任务。腾讯大讲堂48-数据库查询优化浅析尽量使用数据库提供的功能在某实际应用系统中,对于每个任务、日记等对象都有一个唯一的ID,该系统使用数据库的一个表的一条整型记录来维持。当新建一个任务时,取用该表的当前记录值,操作完毕后加1。为了防止不同对象使用相同ID,使用如下方法来保证:

inttemp=0; synchronized{

执行SELECT*FROMOBJECTID;temp=结果集中的idupdate结果集中的id(id+1)

}insertintotaskvalues(temp,...);腾讯大讲堂48-数据库查询优化浅析解决方案createsequencemyseqincrementby1;insertintotaskvalues(myseq.nextval,...);腾讯大讲堂48-数据库查询优化浅析二、SQL语句的解析方式腾讯大讲堂48-数据库查询优化浅析SQL语句的处理过程腾讯大讲堂48-数据库查询优化浅析语法/词法分析负责解析SQL命令和过程性语句块过滤注释,解析参数使用成熟的工具(如YACC/LEX)生成灵活的语法规则定义便于语法的扩展与修改生成统一格式的语法树腾讯大讲堂48-数据库查询优化浅析对应的语法结构Select*fromt1,t2,t3;par_from_tv_list_struct结构par_from_tv_list_t*from_tv_list;par_from_tv_t*from_tvpar_from_tv_list_struct结构par_from_tv_list_t*from_tv_list;par_from_tv_t*from_tvpar_from_tv_list_struct结构par_from_tv_t*from_tvpar_from_tv_struct结构T1par_from_tv_struct结构T2par_from_tv_struct结构T3规则2规则1腾讯大讲堂48-数据库查询优化浅析语义分析数据库对象名字解析合法性检查内部ID的转换权限检查语法树数据结构的简化与预处理DDL语句分解为对系统表的DML视图对象的替换等腾讯大讲堂48-数据库查询优化浅析代价优化器接受语义分析的输入统计信息的分析数据分布统计直方图代价的计算基于统计信息操作符号的选择基于成本的最优执行路径选择生成优化的执行计划腾讯大讲堂48-数据库查询优化浅析基于操作符的执行计划物理操作符功能简单专一,完成特定的数据库操作如:连接,过滤,排序等执行计划操作符的组合,构成树型的执行计划执行时,数据从叶子向根流动在根汇集成结果集,或者得到结果状态计划被自动缓存,以备重用腾讯大讲堂48-数据库查询优化浅析实例分析select*fromA,B,C,DwhereA.a=B.bandB.b1=C.candC.c1=D.dandA.a1>123腾讯大讲堂48-数据库查询优化浅析三、索引的本质以及调优腾讯大讲堂48-数据库查询优化浅析需要了解的概念索引聚集索引、非聚集索引唯一索引、非唯一索引单列索引、组合索引腾讯大讲堂48-数据库查询优化浅析腾讯大讲堂48-数据库查询优化浅析腾讯大讲堂48-数据库查询优化浅析Clusteredtable/index腾讯大讲堂48-数据库查询优化浅析lusteredindexonaclusteredtable

腾讯大讲堂48-数据库查询优化浅析lusteredindexonaclusteredtable

腾讯大讲堂48-数据库查询优化浅析lusteredindexonaclusteredtable

腾讯大讲堂48-数据库查询优化浅析lusteredindexonaclusteredtable

腾讯大讲堂48-数据库查询优化浅析索引调优的6个知识点1、将索引和数据存放到不同的文件组2、组合索引的使用3、唯一索引与非唯一索引的差异4、非聚集索引的作用5、是不是使用非聚集索引的查询都需要进行聚集的查询6、创建索引的规则腾讯大讲堂48-数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论