数据库索引文件一般采用什么数据结构?
来源:互联网 发布:唯品会网络异常 编辑:程序博客网 时间:2024/04/29 01:58
数据库索引文件一般采用什么数据结构?为什么创建非主键索引会降低更新速度,提高查询速度?
答案:
关于数据库索引的数据结构,大多数数据库都是采用B树。可参照文章:
http://blog.csdn.net/Ant_Yan/archive/2008/09/15/2932068.aspx
非主键索引需要在数据表本身的存储空间外额外开销存储空间,所以在更新的时候可能不仅要更新数据表本身,还要更新非主键索引,更新内容更多了,所以导致速度降低。反过来,如果数据表中的数据按照主键索引的顺序存储,更新的时候就没有额外的开销。
非主键索引对提高查询速度来讲,主要的方面是:检索的条件(where...)如果命中对应的非主键索引的话,就不需要对数据表做全表扫描,效率肯定是大大提高。(索引的创建和使用是数据库设计和优化的重要部分,是一个数据库程序员的必修课,不同数据库系统的语法不同,但是原理基本相同);
另一方面,也有如下的可能:如果检索结果的字段包含在非主键索引中,即使对非主键索引做全扫描,也比对整表字段做全扫描快,因为只有非主键索引本身的数据需要从存储设备调入内存,节约了IO时间。
不过一般说索引对查询速度的影响,主要指第一种情况。
http://blog.csdn.net/Ant_Yan/archive/2008/09/15/2932068.aspx
非主键索引需要在数据表本身的存储空间外额外开销存储空间,所以在更新的时候可能不仅要更新数据表本身,还要更新非主键索引,更新内容更多了,所以导致速度降低。反过来,如果数据表中的数据按照主键索引的顺序存储,更新的时候就没有额外的开销。
非主键索引对提高查询速度来讲,主要的方面是:检索的条件(where...)如果命中对应的非主键索引的话,就不需要对数据表做全表扫描,效率肯定是大大提高。(索引的创建和使用是数据库设计和优化的重要部分,是一个数据库程序员的必修课,不同数据库系统的语法不同,但是原理基本相同);
另一方面,也有如下的可能:如果检索结果的字段包含在非主键索引中,即使对非主键索引做全扫描,也比对整表字段做全扫描快,因为只有非主键索引本身的数据需要从存储设备调入内存,节约了IO时间。
不过一般说索引对查询速度的影响,主要指第一种情况。
0 0
- 数据库索引文件一般采用什么数据结构?
- 项目分层有什么优缺点? 分层一般采用什么依据?
- 获取文件采用什么编码
- 什么叫数据库索引?
- 数据库索引数据结构
- 数据库索引-数据结构
- 数据库索引的数据结构
- PDA端的数据库一般采用的是sqlce数据库
- 数据库建立索引的一般依据
- 数据库建立索引的一般依据
- android开发一般都用什么数据库
- 数据库索引,有什么用
- 什么是数据库索引,索引有什么作用
- 数据库索引 - 顺序文件索引
- 【数据结构与算法】数据库索引
- 数据库索引使用的数据结构
- 建立索引时采用聚集方式还是非聚集方式的一般原则
- 一般采用哈希算法的时候,哈希表的长度设为多大?有什么依据?
- vue自定义指令拖拽事件
- Android点赞动画
- 三月十八小结
- 恩,今天把git和sublime结合了一下。。然后看了下《西部世界》
- JS 判断字符串包含
- 数据库索引文件一般采用什么数据结构?
- 港大女生闻判拭泪 教师梦恐粉碎
- L2-001. 紧急救援
- 机器学习之——Logistic回归
- ajax传递给asp.net mvc 后台数组参数方式
- HTML+CSS(7)
- 数据库连接之自定义pool
- 考研复试口语常见问题
- (ssl1640)叠放箱子问题