二分查找 为何要添加索引的高效由来
来源:互联网 发布:win10安装连接网络出错 编辑:程序博客网 时间:2024/05/14 20:50
为什么需要索引(Why is it needed)?
当数据保存在磁盘类存储介质上时,它是作为数据块存放。这些数据块是被当作一个整体来访问的,这样可以保证操作的原子性。硬盘数据块存储结构类似于链表,都包含数据部分,以及一个指向下一个节点(或数据块)的指针,不需要连续存储。记录集只能在某个关键字段上进行排序,所以如果需要在一个无序字段上进行搜索,就要执行一个线性搜索(Linear Search)的过程,平均需要访问N/2的数据块,N是表所占据的数据块数目。如果这个字段是一个非主键字段(也就是说,不包含唯一的访问入口),那么需要在N个数据块上搜索整个表格空间。
但是对于一个有序字段,可以运用二分查找(Binary Search),这样只要访问log2 (N)的数据块。这就是为什么性能能得到本质上的提高。
阅读全文
0 0
- 二分查找 为何要添加索引的高效由来
- 添加聚集索引后高效分页查询的效率
- 二分查找目标元素索引
- 二分算法查找数据所在区间索引值的例子
- 简单易懂 暴力高效的查找法——二分查找
- 高效的索引
- oracle添加主键,查找索引
- 代码合集:健壮的二分查找,高效的堆排序和快速排序
- 数据库为何要建立索引
- 为何要重建索引 index
- 数据库为何要建立索引的原因说明(不错)
- 数据库为何要建立索引的原因说明(不错)
- 数据库为何要建立索引的原因说明
- 二分查找到B+树索引原理
- 为何有时Oracle用索引来查找数据?
- 二分查找和递归的二分查找
- 二分查找,要注意的地方
- 二分查找要注意的问题
- yield return用法
- FileSystemWatcher事件多次触发的解决方法 (C++版)
- iOS7 OC与和JavaScript交互
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建
- 5分钟了解UML类图
- 二分查找 为何要添加索引的高效由来
- live555代码分析
- SQL执行顺序
- JS脚本
- JavaWeb之会话技术Cookie&Session
- Git强制覆盖master分支
- 如何解决window.location.href不跳转的问题
- springboot
- Android 面试总结 Handler、Looper、Message、MessageQueue基础流程分析