全表扫描相信大家都知道,一般情况下都要尽量不要使用。索引扫描是先在索引B树中查找满足条件的行,找到后根据索引中行ROWID信息,直接定位表中相应的行。即使表中的数据有千万级,效率是很高的。这种情况只是针对返回的行比较少的情况,如果很多的话,效率很可能就低了。
原因:
上图中,第1个叶块中的第2个索引条目和第2个叶块中的第8个索引条目,指向表中同一块:第5号块。索引是按顺序访问的,当访问到第1个索引条目时,Oracle将表中5号块读进Buffer cache,读后面的索引条目时,因为后面的索引条目并不一定也指向表中5号块,在此例中,后面的索引条目都指向其他的块,Oracle必须将其他的块读进Buffer cache,而这后读进Buffer cache中的块,可能会使表的第5号块老化(也就是被移出缓存),当读到第8个索引条目时,又必须重新物理读取一次表的第5号块。而全表扫描则不同,它每读取一个块,必将此块中所有满足条件的行全部取出,才会物理读取下一个块。因此,如果是取表中大量行,通过索引扫描反而会使物理读增加,因而造成性能降低。
所以从表中取出大量行时,通常行数占表中总行数的10%以上时,再通过索引取行效率就不很好了。
- 大小: 133.5 KB
分享到:
相关推荐
在目前大数据的背景下,以亿为单位数据时常遇到,一般数据库操作人员习惯使用Count(*)来统计表的记录数,但实际上,无论是否建有索引,都应该使用sysindexes来进行查询,可以很快的返回结果。 第三,尽量避免...
他们尝试使用关系型数据库管理系统(RDBMS)作为解决方案,但结果表明尽管缓存的查询可以很快,但是对基础事实表的查询通常不可接受。而使用星型模式(Star Schema)、聚合表以及查询缓存的常见数据仓库解决方案在...
在描述中提到的“搜索邮件速度很快”,这并非空穴来风。该软件采用了先进的索引技术和智能算法,能够在瞬间对大量邮件进行精准匹配,帮助用户迅速定位到目标邮件,极大地提升了工作效率。 首先,我们要理解的是,...
5. **索引**:为每个关系维护的索引集合,以提高查询性能。 6. **安全性和授权信息**:对每个关系设置访问控制和权限管理,确保数据的安全。 **数据操作语言 (DML)** DML用于操纵数据库中的数据,包括查询、插入、...
- MySQL在诞生初期虽然功能相对简单,但凭借着标准化查询语言的支持、高效的数据存取能力以及无需关注事务完整性的特点,很快吸引了众多互联网初创企业的青睐。这些企业看中MySQL的成本效益和易于使用的特性,使得...
14. 文件索引结构:索引结构的文件系统中,逻辑连续的文件可能不连续存放,索引表用于快速查找,优点是访问速度快,文件长度可动态调整,但缺点是增加了存储开销。 15. 磁盘存取访问时间:主要包括寻道时间(找到...
这份文档由Philip Bille撰写,旨在帮助读者在学习算法过程中遇到难题时提供解答思路,但作者强调这仅是一种可能的解决方案,并非绝对正确,读者应独立思考后再参考。 ### 插入排序与归并排序的性能比较 文档中提到...
当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> ...
10. **系统抖动**:系统抖动是指被调出的页面很快又被调入,导致频繁的页面交换,降低了系统的效率。 11. **索引文件的优点**:索引文件的主要优点是便于直接存取,可以快速定位到文件的特定部分。 12. **计算机...
链表是一种线性数据结构,其中的元素并非存储在连续的内存位置。相反,每个元素(称为节点)都包含指向列表中下一个元素的链接。链表可以分为单向链表、双向链表等多种类型。单向链表的每个节点只包含一个指向下一个...
有一个索引页面,它具有不同的布局,需要以其独特的方式进行分页和全部处理。 有些页面将类别中的各个页面组合在一起。 等等。 处理单个页面很容易,但是随着页面的整个集合,您很快就会发现自己编写了许多样板代码...
例如,列表的索引访问速度很快,但插入和删除操作在中间位置时效率较低,而链表则反之。栈和队列的操作特性使其在处理数据流时表现出色。树和图的遍历策略(如深度优先搜索和广度优先搜索)是解决问题的关键。 ...