`
java-lazypig
  • 浏览: 6813 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类

SQL 查询优化之索引扫描与全表扫描漫谈

SQL 
阅读更多

SQL 查询优化之索引扫描与全表扫描漫谈

阅读对象: 初级用户

索引扫描---也许你有过这样的经历, 某日应邀第一次去朋友家, 朋友告诉你是开心家园132栋1102, 之后你就去了开心家园, 接下来你要从该小区中寻找132栋, 但是小区很大, 你可能会凭经验楼栋号是连续分布的, 依照进开心家园大门的几栋楼栋号的排列顺序往前找, 也许运气好, 你很容易就找到了, 但是有的小区楼栋号分布并不连续, 这个时候在你觉得下一栋就是你要找的楼栋号时, 走近一看发现却不是,这时你不得不再次花费时间来寻找. 那如何快速的找到你的楼栋号所处的位置呢? 物业已经为你制作了一个楼栋号分布图竖在大门口, 这时你只需要查看这个地图就能轻易的找到你要的楼栋号在该小区的位置, 接下来就直接奔往那个位置即可. 这种情况运用到数据库查询中, 我们可以发现, 整个小区相当于一个数据表, 各个楼栋是这个数据表中的数据, 这里我们使用到的楼栋号分布图就相当于这个数据表的索引, 因此当我们查找数据表中指定某一个数据时, 使用索引查找到数据所在的位置(ROWID), 然后直接根据位置就能够得到你要的数据了. 这就是索引在查询中加快查询速度的使用.

全表扫描---那是不是使用索引查找数据就一定快了呢? 某日, 你被指派为水表抄表员, 你需要对该小区200栋楼的居民用户抄水表读数, 你知道一共从1到200号, 但我想你一定不会根据楼栋号分布图先查看第1栋的位置, 然后跑到第1栋的楼号去抄完表, 再根据第2号楼的位置到第2个楼去抄表, 你一定是根据小区的分布, 从第一排的楼栋的第一个楼号开始连续的从一栋抄完再到紧挨着的那一栋(楼栋号可能并不连续),第一排结束到第二排 这样顺序走完一遍即可. 这对于SQL查询就相当于全表扫描, 像这种查询数据表中全部(或者说大部分)数据的时候, 走全表扫描比走索引更加有效.
分享到:
评论
1 楼 完善自我 2012-08-17  
举例很形象

相关推荐

    oracle全表扫描的3种优化手段

    ### Oracle全表扫描的三种优化手段 在Oracle数据库管理中,全表扫描(Full Table Scan,...综上所述,通过调整Oracle数据库的相关配置和参数,可以有效地优化全表扫描的性能,从而提高整体系统的响应速度和吞吐量。

    SQL性能优化以及索引的优化

    在数据库管理领域,SQL性能优化和索引优化是至关重要的技术环节,它们直接影响到数据库的运行效率和用户体验。本文将深入探讨这两个主题,提供丰富的知识和实践经验。 首先,SQL性能优化涉及一系列策略和技巧,旨在...

    sql查询优化 查询优化

    优化查询以尽可能利用索引,减少全表扫描的次数。 7. 分析查询执行计划: 大多数数据库系统提供了查询执行计划分析工具,可以帮助识别查询中的瓶颈,从而指导优化工作。 8. 减少数据冗余和保持数据一致性: 数据...

    数据库SQL优化大总结之 百万级数据库优化方案.pdf

    本文总结了数据库SQL优化的十一个重要知识点,以帮助开发者提高SQL查询效率,避免全表扫描。 一、数据库SQL优化之索引优化 1. 在where及order by涉及的列上建立索引,以避免全表扫描。 二、数据库SQL优化之避免...

    sql2005 索引和查询优化

    2. **避免全表扫描**:设计索引以使大部分查询能利用到。 3. **使用索引提示**:在查询中明确指定应使用的索引,帮助优化器做出决策。 4. **考虑查询成本**:优化器会选择成本最低的执行计划,但并不总是最快速的。 ...

    SQL优化 SQL优化软件 SQL优化工具

    1. **查询分析**:这些工具能够分析SQL语句的执行计划,指出可能存在的问题,如不必要的全表扫描、排序操作过多或使用了低效的索引等。 2. **性能监控**:实时监控数据库的性能指标,如CPU使用率、I/O等待时间、...

    解析SQL语句在何种情况下进行全表扫描

    对于那些可能导致全表扫描的查询,可以考虑创建合适的覆盖索引,使用范围查询,或者调整查询逻辑,以充分利用索引的效率。同时,对大数据量的表进行定期维护,如重建索引、分析统计信息,也是确保数据库高效运行的...

    SQL查询思路优化与语句优化.pdf

    "SQL查询思路优化与语句优化" 本资源摘要信息旨在讨论SQL查询思路优化与语句优化的重要性和方法。数据库查询优化是一个关键因素,影响数据库的推广和应用。SQL查询是一个有序的查询,不同语句的使用和顺序将直接...

    数据库面试题索引sql优化

    在数据库领域,尤其是对于从事数据库管理、开发工作的专业人士而言,面试过程中经常会被问及关于SQL查询优化以及索引的相关问题。这些知识点不仅是技术能力的重要体现,也是提高数据库系统性能的关键因素之一。本文...

    ORACLE索引详解及SQL优化

    Oracle数据库是全球广泛使用的数据库系统之一,其性能优化的关键之一在于有效的索引设计与使用。本文将深入探讨Oracle索引的原理、创建方法,并结合SQL优化策略,帮助你提升数据库查询速度,降低资源消耗。 首先,...

    个人整理,oracle访问路径(全表扫描、回表、索引范围扫描等等)

    回表可以快速地访问表中的一行记录,效率高于全表扫描。 回表通常用于以下情况: * 查询条件包含 ROWID。 * 需要快速访问表中的一行记录。 三、索引范围扫描(Index Range Scan) 索引范围扫描是一种使用索引来...

    sql面试题(sql查询优化)

    - **避免全表扫描**:确保查询能够利用到索引,避免全表扫描,尤其是大数据量的表。 #### 2. 查询语句优化 - **避免SELECT ***:明确指定需要查询的字段,减少数据传输量。 - **使用JOIN代替子查询**:在可能的...

    Sql Server查询性能优化之走出索引的误区

    即使在性别列上创建了索引,当查询条件仅涉及性别时,查询优化器可能仍然选择全表扫描或聚集索引扫描,而非使用该索引,因为书签查找(如RID或键查找)可能带来更高的成本。 误区2:聚集索引扫描表示高效。虽然聚集...

    SQL优化介绍 SQL优化介绍

    例如,通过创建合适的索引来加速查询,避免全表扫描;通过绑定变量减少解析开销;通过并行查询分散负载;通过分区技术优化大数据量的处理等。 总之,SQL优化是一项深入的工作,需要综合考虑数据库的架构、数据量、...

    oracle数据库索引与sql的优化

    综上所述,Oracle数据库索引与SQL优化是提高数据库性能的关键因素之一。通过合理的设计索引以及优化SQL语句,可以显著提升查询效率,减少系统资源消耗,为用户提供更好的服务体验。在实际应用中,应根据具体情况灵活...

    ORACLE SQL性能优化文档大全(包括所有sql索引方面知识)

    - 避免全表扫描:尽量设计查询以利用索引,减少全表扫描。在数据分布均匀的情况下,索引能有效提高查询速度。 - 使用绑定变量:使用绑定变量可以减少SQL语句的解析次数,因为相同逻辑的查询只解析一次,即使参数值...

    【整理】数据库面试题索引sql优化+数据库SQL优化总结之百万级数据库优化

    4. **SQL性能分析**:了解如何使用EXPLAIN分析查询执行计划,找出慢查询的原因,如索引未被利用、全表扫描、排序或临时表的创建。 5. **SQL优化技巧**:这可能涉及重写SQL语句以减少资源消耗,比如使用连接操作而非...

    SQL优化-索引

    SQL优化中的索引是提升数据库查询性能的关键技术。索引可以理解为数据库中的一种特殊目录,帮助快速定位和访问数据。SQL Server提供了两种主要类型的索引:聚集索引(Clustered Index)和非聚集索引(Nonclustered ...

    索引跳跃扫描案例优化分享.txt

    - **背景**:在传统的索引访问路径中,如果索引列顺序与查询条件顺序不一致,则可能导致全表扫描或全索引扫描,这将大大降低查询效率。 - **解决方案**:索引跳跃扫描通过跳过不必要的索引条目,只访问那些可能...

Global site tag (gtag.js) - Google Analytics