SQL 查询优化之索引扫描与全表扫描漫谈
阅读对象: 初级用户
索引扫描---也许你有过这样的经历, 某日应邀第一次去朋友家, 朋友告诉你是开心家园132栋1102, 之后你就去了开心家园, 接下来你要从该小区中寻找132栋, 但是小区很大, 你可能会凭经验楼栋号是连续分布的, 依照进开心家园大门的几栋楼栋号的排列顺序往前找, 也许运气好, 你很容易就找到了, 但是有的小区楼栋号分布并不连续, 这个时候在你觉得下一栋就是你要找的楼栋号时, 走近一看发现却不是,这时你不得不再次花费时间来寻找. 那如何快速的找到你的楼栋号所处的位置呢? 物业已经为你制作了一个楼栋号分布图竖在大门口, 这时你只需要查看这个地图就能轻易的找到你要的楼栋号在该小区的位置, 接下来就直接奔往那个位置即可. 这种情况运用到数据库查询中, 我们可以发现, 整个小区相当于一个数据表, 各个楼栋是这个数据表中的数据, 这里我们使用到的楼栋号分布图就相当于这个数据表的索引, 因此当我们查找数据表中指定某一个数据时, 使用索引查找到数据所在的位置(ROWID), 然后直接根据位置就能够得到你要的数据了. 这就是索引在查询中加快查询速度的使用.
全表扫描---那是不是使用索引查找数据就一定快了呢? 某日, 你被指派为水表抄表员, 你需要对该小区200栋楼的居民用户抄水表读数, 你知道一共从1到200号, 但我想你一定不会根据楼栋号分布图先查看第1栋的位置, 然后跑到第1栋的楼号去抄完表, 再根据第2号楼的位置到第2个楼去抄表, 你一定是根据小区的分布, 从第一排的楼栋的第一个楼号开始连续的从一栋抄完再到紧挨着的那一栋(楼栋号可能并不连续),第一排结束到第二排 这样顺序走完一遍即可. 这对于SQL查询就相当于全表扫描, 像这种查询数据表中全部(或者说大部分)数据的时候, 走全表扫描比走索引更加有效.
分享到:
相关推荐
数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引sql优化数据库面试题索引...
SQL性能优化以及索引的优化,索引的优化可以很大提高查询效率,有详细的数据
sql2005 索引和查询优化 sql2005 索引和查询优化
Microsoft SQL Server 2008技术内幕 T-SQL 查询 一书中,第四章,索引优化章节的示例数据库脚本。
基于索引的SQL语句优化之降龙十八掌 SQL语句优化
Oracle+SQL优化之使用索引提示一例
sqlserver管理索引优化SQL语句
它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。...
MySQL查询优化技术_索引
系统跑久了,对于所有的索引想做一个具体的确认,所以写了这么一段, 可以用来分析自己数据的表及索引详情 针对记录数比较大的表,尤其要注意索引的情况,非常影响性能
《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...
基于索引的sql语句优化之法则.基于索引的sql语句优化之法则
SQL优化 SQL优化软件 SQL优化工具 很好用的工具,可以分析优化TSQL语句,oracle数据库语句优化工具
SqlServer性能优化高效索引指南
8.2.3 索引扫描类型的分类与构造 219 8.3 索引相关优化案例 225 8.3.1 三大特性的相关案例 225 8.3.2 组合索引的经典案例 231 8.4 本章习题、总结与延伸 234 第9章 且慢,弄清索引之阻碍让SQL飞 235 9.1 索引...
书 名: SQLServer2008查询性能优化 作 者:(美)弗里奇,(美)达姆 ,姚军 译 出版社: 人民邮电出版社 本书通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中...
但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一 般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来使 用索引,这有助于写出高...
《SQL Server 2008查询性能优化》(SQL Server 2008 Query Performance Tuning Distilled)扫描版[PDF] 个人感觉不错,对Sqlserver优化很有帮助,主要都是我们经常犯的错,值得借鉴:如:低性能的查询、索引、死锁等等...
扫描查询计划的列中指定的聚集索引 利用索引的查找功能从聚集索引中检索行 执行多表联接逻辑操作,嵌套循环联接通常使用索引在内部表中搜索外部表的每一行 从列中指定的非聚集索引中扫描所有行 利用索引的...
深入理解SqlServer索引机制及合理优化数据库