数据库索引详解
来源:互联网 发布:问卷调查数据分析方法 编辑:程序博客网 时间:2024/06/05 00:30
数据库索引详解
[By GavinHacker]
转载请标明出处:http://www.cnblogs.com/gavinsp/p/5513536.html
关于数据库索引,相信大家用到最多的一定是数据库设计和数据库查询,本篇深度解析一下数据库索引的原理,涉及数据库本身的设计原理,对设计应用的数据库结构,和数据库查询也大有益处。
(一)在了解数据库索引之前,首先了解一下数据库索引的数据结构基础,B+tree
B+tree 是一个n叉树,每个节点有多个叶子节点,一颗B+树包含根节点,内部节点,叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上叶子节点的节点。
B+tree的性质:
1.n棵子tree的节点包含n个关键字,不用来保存数据而是保存数据的索引。
2.所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
3.所有的非终端结点可以看成是索引部分,结点中仅含其子树中的最大(或最小)关键字。
B+tree结构原型图大概如下(引用):
这里还有一篇百度文库文章可以参考 http://wenku.baidu.com/link?url=qniQ1rpN8XOlbs4Vu6pjd_7YzVOGYxmBH0TeHLJTvwQ3Qs9Ig-FJyodXSaeBc3Ap7nC6Rm9qD6We5oJL-j7vnM4Ro5Y5J7yHwCk3asL_q5e
由于B+tree的性质, 它通常被用于数据库和操作系统的文件系统中。NTFS, ReiserFS, NSS, XFS, JFS, ReFS 和BFS等文件系统都在使用B+树作为元数据索引,因为B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度(B+ 树元素自底向上插入)。
(二)数据库索引
数据库索引是用于提高数据库表的数据访问速度的。
数据库索引的特点:
a)避免进行数据库全表的扫描,大多数情况,只需要扫描较少的索引页和数据页,而不是查询所有数据页。而且对于非聚集索引,有时不需要访问数据页即可得到数据。
b)聚集索引可以避免数据插入操作,集中于表的最后一个数据页面。
c)在某些情况下,索引可以避免排序操作。
数据库索引的存储方式,类型,在运行时的操作原理,我制作成了下图:
关于数据库索引在数据库表设计和应用查询中所涉及的知识会在之后的文章中分享。
转载自:http://www.cnblogs.com/gavinsp/p/5513536.html
- 数据库索引原理详解
- 详解数据库中的索引
- 数据库索引详解
- 数据库索引详解
- 数据库索引 - 详解
- 数据库索引详解
- 数据库索引详解
- 数据库的索引详解
- 数据库索引详解
- 数据库索引详解
- 数据库索引详解
- 数据库索引原理详解
- 数据库索引详解
- 数据库索引详解
- Oracle数据库中的索引详解
- 详解SQL Server数据库索引
- MySql数据库索引详解教程
- 详解Oracle数据库中文全文索引
- Java 开发环境配置
- SpringMVC学习系列(1) 之 初识SpringMVC
- 为什么spark 1.6之后使用Netty来替代Akka通信库?
- sql一些笔记
- String是一个很普通的类
- 数据库索引详解
- git 更新时提示MERGE_HEAD exist解决方法
- 国家信息中心:信用助力分享经济发展研究报告
- 数据结构之栈
- Redis 学习笔记(十一)基数统计(HyperLogLog)
- 蓝桥杯 历届试题 分糖果(Java)
- CentOS7源码安装node.js和webSocket
- Windows Server 2008 终端服务授权激活-离线
- qt+halcon配置方法记录