<海量数据库解决方案>2011040101
【摘抄】
创建索引的目的是快速从整体集合中选择性读取满足条件的一部分集合。
查询条件中有缩减查询范围起主要作用的驱动查询条件,也有单纯起检验作用的过滤查询条件。
最理想的方法就是把拥有最小查询范围的条件作为驱动查询条件来使用。
对于特定的读取类型,最有效的索引就是基于常量比较的列来创建的组合索引。
问题的核心不在于创建了多少索引,而是创建的索引是否能够充分的发挥最大的作用。判断其作用的依据会随着其缩减查询范围的有效程度而不同,离散度就是对该判断有着直接影响的重要因素。
Somebooks多次提及:离散度在不超过全表的10%-15%的前提下索引才可以显示其具有的价值。换言之,索引列的离散度为10%-15%的深层意思是,当离散度超过该值的情况下全表扫描可能反倒比索引扫描更有效。
损益分界点是在利用索引读取满足条件的全部数据的情况下所使用的准则,即,在读取满足条件的行时索引扫描和全表扫描的损益。
如何查看索引列的离散度??
现在还是没有找到可观察的手段
细想一下,在一定量的数据上,才能有此更大的比较~
实在不行,可以这么测试:
建两个库,一个完全无索引;一个根据实际设定索引内容
执行相同的sql来比较,来归纳离散度在此的应用
当然,在小数据上这个是完全看不到效果,大数据又是好大,这个需要实践来得出。
希望后续的阅读能解决今天的问题。
创建索引的目的是快速从整体集合中选择性读取满足条件的一部分集合。
查询条件中有缩减查询范围起主要作用的驱动查询条件,也有单纯起检验作用的过滤查询条件。
最理想的方法就是把拥有最小查询范围的条件作为驱动查询条件来使用。
对于特定的读取类型,最有效的索引就是基于常量比较的列来创建的组合索引。
问题的核心不在于创建了多少索引,而是创建的索引是否能够充分的发挥最大的作用。判断其作用的依据会随着其缩减查询范围的有效程度而不同,离散度就是对该判断有着直接影响的重要因素。
Somebooks多次提及:离散度在不超过全表的10%-15%的前提下索引才可以显示其具有的价值。换言之,索引列的离散度为10%-15%的深层意思是,当离散度超过该值的情况下全表扫描可能反倒比索引扫描更有效。
损益分界点是在利用索引读取满足条件的全部数据的情况下所使用的准则,即,在读取满足条件的行时索引扫描和全表扫描的损益。
如何查看索引列的离散度??
现在还是没有找到可观察的手段
细想一下,在一定量的数据上,才能有此更大的比较~
实在不行,可以这么测试:
建两个库,一个完全无索引;一个根据实际设定索引内容
执行相同的sql来比较,来归纳离散度在此的应用
当然,在小数据上这个是完全看不到效果,大数据又是好大,这个需要实践来得出。
希望后续的阅读能解决今天的问题。
无论生活、还是技术,一切都不断的学习和更新~~~努力~
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
2009-04-01 关于一次统计的分析