面试时无意间被问到了这个问题:数据库索引的存储结构一般是B+树,为什么不适用红黑树等普通的二叉树?经过和同学的讨论,得到如下几个情况: 1. 数据库文件是放在硬盘上,每次读取数据库都需要在磁盘上搜索,因此需要考虑磁盘寻道时间,我们都知道磁盘寻道开销是非常大的。同时,索引一般也是非常大的,内存不能放....
分类:
数据库 时间:
2015-12-18 22:37:00
阅读次数:
328
QuadTree四叉树顾名思义就是树状的数据结构,其每个节点有四个孩子节点,可将二维平面递归分割子区域。QuadTree常用于空间数据库索引,3D的椎体可见区域裁剪,甚至图片分析处理,我们今天介绍的是QuadTree最常被游戏领域使用到的碰撞检测。采用QuadTree算法将大大减少需要测试碰撞的次数...
分类:
Web程序 时间:
2015-12-14 01:29:23
阅读次数:
338
一、索引的概念 索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。二、索引的特点 1.索引可以加快数据库的检索速度 2.索引降低了数据库插入、修改...
分类:
数据库 时间:
2015-12-02 16:10:22
阅读次数:
189
为什么要创建索引呢?索引的好处?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排...
分类:
数据库 时间:
2015-11-26 12:24:30
阅读次数:
190
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎 对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索 引,因为这是平常使用M...
分类:
数据库 时间:
2015-11-25 22:15:25
阅读次数:
271
在很多系统中,比如本人目前管理的数据库,索引经常被滥用,甚至使用DTA(数据库引擎优化顾问)来成批创建索引(DTA目前个人认为它的真正用处应该是在发现缺失的统计信息,在以前的项目中,用过一次DTA,里面提示了很多列缺少统计信息,后来在不改动其他操作的前提下,把这些统计信息手动建上去,性能提升非常明显...
分类:
数据库 时间:
2015-11-18 21:13:08
阅读次数:
340
1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引2.对于多列索引,不是使用的第一部分,则不会使用索引3.like查询是以%开头4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否...
分类:
数据库 时间:
2015-11-17 21:57:57
阅读次数:
447
1、独立的索引列。索引不能是表达式的一部分,也就是说索引列不能参与任何计算和函数方法(冲当参数)等。 2、不要肆意使用索引。并不是说为where条件之后的所有查询列都加上索引就一定会提升查询性能。 3、当whe...
分类:
数据库 时间:
2015-11-05 12:12:29
阅读次数:
236
现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描 述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用。本文摘自《MySQL 5权威指南》(3rd)的8.9节。索引是一种特殊的文件(InnoDB数据表上的索引是表空间...
分类:
数据库 时间:
2015-11-04 17:37:21
阅读次数:
151
. 索引分类Ø 按存储方法分类B*树索引:B*树索引是最常用的索引,其存储结构类似书的索引结构,有分支和叶两种类型的存储数据块,分支块相当于书的大目录,叶块相当于索引到的具体的书页。一般索引及唯一约束索引都使用B*树索引。位图索引:位置索引储存在主要用来节省空间,减少Oracle对数据块的访问,它采...
分类:
数据库 时间:
2015-11-03 00:21:03
阅读次数:
233