《7从案例中体会函数及位图索引与SQL优化.pdf》由会员分享,可在线阅读,更多相关《7从案例中体会函数及位图索引与SQL优化.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 基于案例学SQL优化第7周 从案例中体会函数及从案例中体会函数及位图索引与位图索引与SQL优化优化 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 法律声明【声明】本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,丌得在课程以外范围散播,违者将可能被追究法律和经济责任。课程详情访问炼数成金培训网站 http:/ 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 当前课程进度 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的总体概述
2、基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 总体概述之位图索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 简单地说说位图索引的结构,比如如下简单地说说位图索引的结构,比如如下t表有表有4个字段,分别是个字段,分别是ID、NAME、SEX和和STATUS,其中,其中SEX取值仅为男或女,有时由于不知道性取值仅为男或女,有时由于不知道性别,暂时为空,具体如下:别,暂时为空,具体如下:简要说说位图索引 ID NAME SEX STATUS 1 张一 女 毕业 2 李二 男 在读 3 王三 男 毕业 4 赵四 女 在读 5 马五 在读 6 刘六 男
3、 毕业 7 孔七 毕业 8 叶八 男 在读 9 陈九 男 毕业 10 丁大 女 在读 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 简要说说位图索引 值/行 第1行 第2行 第3行 第4行 第5行 第6行 第7行 第8行 第9行 第10行 男 0 1 1 0 0 1 0 1 1 0 女 1 0 0 1 0 0 0 0 0 1 NULL 0 0 0 0 1 0 1 0 0 0 当我们对当我们对SEX这列建了位图索引后,位图索引的原理是这样的,如下这列建了位图索引后,位图索引的原理是这样的,如下:男块男块(装满了装下一个男块)女女块块(情况类似)NULL块块(情况类似)基于
4、案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 总体概述之函数索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 简要说说函数索引 基于函数的索引是将一个函数计算得到的结果存储在行的列中,基于函数的索引是将一个函数计算得到的结果存储在行的列中,而不是存储列数据本身。可以把基于函数的索引看作一个虚拟列上而不是存储列数据本身。可以把基于函数的索引看作一个虚拟列上的索引(这个列不是物理的存储在表中)。的索引(这个列不是物理的存储在表中)。骚年们,还记得传统的BTREE索引?函数索引其实就是这里改放ID列的函数值,除此外其他基本类似 基于案例学SQL优化 讲师
5、 梁敬彬 DATAGURU与业数据分析社区 总体概述之反向索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 简要说说反向键索引 反向键索引就是普通的反向键索引就是普通的B*TREE索引,只不过键中的字节会“反转”。利索引,只不过键中的字节会“反转”。利用反向键索引,如果索引中填充的是递增的值,索引条目在索引中可以得用反向键索引,如果索引中填充的是递增的值,索引条目在索引中可以得到更均匀的分布。如到更均匀的分布。如687002、687003、687004等值是顺序的,如果是传统等值是顺序的,如果是传统B*TREE索引,这些值就会在同一个右侧块上,加剧了块的竞争。如果反向
6、索引,这些值就会在同一个右侧块上,加剧了块的竞争。如果反向键索引:键索引:Oracle会逻辑的将会逻辑的将687002、687003、00786都转换如下所示。一都转换如下所示。一下子下子距离距离变得很远,于是索引的插入立即分布到多块上去了。变得很远,于是索引的插入立即分布到多块上去了。687002变为变为200786 687003变成变成300786 687004变成变成400786 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 总体概述之全文索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 简要说说全文索引 Oracle实现全文检索,其机制
7、其实很简单。即通过Oracle词法分析器(lexer),将所有的表意单元(Oracle 称为 term)找出来,记录在一组以dr$开头的表中,同时记下该term出现的位置、次数、hash值等信息。检索时,Oracle从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的匹配率。而lexer则是该机制的核心,它决定了全文检索的效率。Oracle针对不同的语言提供了不同的lexer,而我们通常能用到其中的三个:basic_lexer:针对英语。chinese_vgram_lexer:专门的汉语分析器 chinese_lexer:这是一个新的汉语分析
8、器 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 走进其他索引的丐界 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的位图索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 位图索引学习 位图索引学习 脚本:位图索引之如何高效即席查询 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 位图索引学习 位图索引学习 脚本:位图索引之如何快速统计条数 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的函数索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分
9、析社区 反向键索引学习 函数不索引学习 脚本:函数索引陷阱之30553的错误 脚本:函数索引不各种列的类型转换 脚本:函数索引不各种列的等式转换 脚本:函数索引不各种列的函数转换 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的反向键索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 反向键索引学习 反向键索引学习 脚本:反向键索引妙用之能减少争用 本质原因:由于字节反转,访问的近期数据分布在丌同的块上,甚至距离很远,在同一数据块上的概率很低!基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的全文索引 基于案
10、例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 全文索引学习 全文索引学习 脚本:全文索引性能优势之妙用索引 友情提醒:全文索引也是有陷阱的,需要多多小心,请大家在随后的案例中多多体会。基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 其他索引的相关案例 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中学位图索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中学位图索引 案例中学位图索引 脚本:位图索引陷阱之更新列容易死锁 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例中
11、学习位图索引 从案例中学习位图索引 脚本:位图索引陷阱之列重复度低慎建 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中的函数索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中学习函数索引 从案例中学习函数索引 脚本:函数索引妙用之部分记彔建索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中学习函数索引 从案例中学习函数索引 脚本:函数索引妙用之减少递归的调用 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中学习函数索引 从案例中学习函数索引 脚本:函数索引陷阱之函数变更不影
12、响 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中的反向键索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例中学习反向键索引 从案例中学习反向键索引 脚本:反向键索引陷阱之丌能范围查询 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 案例中的全文索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例中学习全文检索 从案例中学习全文检索 脚本:全文索引负面之缘何查丌到记彔 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 从案例中学习全文检索 从案例中学习全文检索
13、脚本:全文索引负面之值谨防数据更新 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 本周课程延伸不总结 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 课程总结之加强监控 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 课程延伸总结之监控 课程延伸总结之监控 脚本:丌该建位图索引的列 脚本:系统有哪些全文索引 脚本:哪些SQL存在列运算 脚本:系统有哪些函数索引 脚本:系统有哪些位图索引 脚本:系统有无反向键索引 基于案例学SQL优化 讲师 梁敬彬 DATAGURU与业数据分析社区 课程总结之自我回顾 基于案例学SQL优化 讲师
14、 梁敬彬 DATAGURU与业数据分析社区 炼数成金逆向收费式网络课程 Dataguru(炼数成金)是与业数据分析网站,提供教育,媒体,内容,社区,出版,数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使到原先孤立的学习个体组合成有组织的探索力量。并丏把原先劢辄成千上万的学习成本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架中国第一的网上知识流转阵地。关于逆向收费式网络的详情,请看我们的培训网站 http:/ DATAGURU专业数据分析网站 FAQ时间 42