数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树

在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

上图展示了一种可能的索引方式。左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log2n)的复杂度内获取到相应数据。

最新文章

  1. jquery.validate:
  2. Web项目,F12调试的说明
  3. 【POJ】2296 Map Labeler
  4. string s = null 和 string s = “”的区别
  5. Codeforces Round #181 (Div. 2) C. Beautiful Numbers 排列组合 暴力
  6. 2014--9=17 软工二班 MyEclipse blue==5
  7. JDK1.8 HashMap中put源码分析
  8. iOS: XCode6 beta 6 错误
  9. php 中的魔术方法-----“事件方法”
  10. mysql 查询缓存配置和查看
  11. [LeetCode] Monotone Increasing Digits 单调递增数字
  12. [Django] 单元测试小记
  13. es6(二):解构赋值
  14. Log4j配置(xml和property两种)
  15. (77)Wangdao.com第十五天_JavaScript 用于数据交换的文本格式 JSON 对象
  16. 开源RPC Jupiter
  17. keepalive的工作原理和如何做到健康检查
  18. spyder 安装
  19. Python算法(一)冒泡排序
  20. Python 函数(三)

热门文章

  1. Day1:T3 bfs T4 树形DP
  2. [转]iOS Tutorial – Dumping the Application Memory Part 2
  3. Area 使用
  4. .NET重构—单元测试重构
  5. 判断UA这种事不能说的太明。
  6. IOS7学习之路八(iOS 禁止屏幕旋转的方法)
  7. 自定义的UIAlertView不能在iOS7上正常显示
  8. 实现了一个简单的key-value存储系统
  9. Windows应用商店API
  10. 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换