`
lixucheng
  • 浏览: 80283 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

为什么索引会提高效率

阅读更多

前面发了一篇文章《索引的作用有多大?》,有些同学说还是不清楚索引干什么的,那篇文章的地址:http://blog.csdn.net/JavaEETeacher/archive/2010/06/02/5641851.aspx,下面就谈谈索引是干什么的,为什么能提高效率。

数据库表的信息是存在在文件中的,每个文件中有很多记录,你添加一条记录,文件中就会多一条记录。

如果要查找一条记录怎么查找呢?你会打开文件读取文件内容,然后看看是不是你要的记录,查找任何记录都要从前向后去比较。就像一个房间有很多人,你知道要找的人在这个房间,但是具体在什么位置你不知道,你只有一个一个看,直到找到你要找的人,运气好的话,第一个人就是你要找的,运气不好,最后一个人才是你要找的。效率低不低?

如何解决这个问题呢?如果能记录每条记录的位置信息是不是就可以很快找到呢?例如房间中有很多人,你可以制作一个座位图,这样要找哪个人,先在图上找出这个人在什么地方,然后直接到相应的位置找就可以找到。这就是索引。如果座位图上用的是名字和位置信息,要是根据名字可以很快找到这个人,要根据编号就没有办法查找了。所以索引是根据记录的某个属性(可以是多个)来建立的。

索引为什么能提高效率呢?因为查找的时候,可以直接定位,不用遍历,所以查找会非常快。当然如果你要查询某个表的所有记录对速度不会用太大影响。在表连接的时候是如何提交效率的呢?遍历第一个表时候,对于每一条记录,都会根据连接字段去查找关联表,如果能直接定位就可以直接读取,如果不能直接定位,在需要遍历第二张表,表中有多少记录,就要遍历多少次。所以如果两张表分别有3000条记录,有索引(在关联字段上)需要找3000次,如果没有索引需要找3000*3000/2次,所以效率差别会非常大。

李绪成 CSDN Blog:http://blog.csdn.net/javaeeteacher
CSDN学生大本营:http://student.csdn.net/space.php?uid=124362
如果喜欢我的文章,就加我为好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5

分享到:
评论

相关推荐

    利用索引提高SQLServer数据处理效率

    在当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来,才能产生...

    数据库 使用索引提高查询效率.ppt

    数据库 使用索引提高查询效率

    如何用索引来提高查询效率[借鉴].pdf

    如何用索引来提高查询效率[借鉴].pdf

    合理创建和使用索引 提高Oracle查询效率.pdf

    合理创建和使用索引 提高Oracle查询效率.pdf

    SQL效率提升之一些SQL编写建议并有效利用索引

    使用LIKE比较进行查询时,如果模式以特定字符串如“abc%”开头,使用索引则会提高效率;如果模式以通配符如“%xyz”开头,则索引不起作用 3. OR会引起全表扫描,且和IN的作用相当 4. 尽量少用NOT 5. EXISTS 和 IN的...

    提高查询效率的oracle索引优化策略探析.pdf

    提高查询效率的oracle索引优化策略探析.pdf

    提高爬虫效率,建立完整网站索引架构 SEO 日志

    提高爬虫效率,建立完整网站索引架构 SEO相关关于的IIS日志

    SQL Server 2000数据库中如何重建索引

    在SQL Server 2000中,如果要用一个步骤重新创建索引,而不想删除旧索引并重新创建同一索引,则使用CREATE INDEX语句的DROP_EXISTING子句可以提高效率。这一优点既适用于聚集索引也适用于非聚集索引。以删除旧索引...

    MySQL索引面试题+索引优化+索引失效

    MySQL索引是数据库中用于提高查询效率的重要组成部分。在面试过程中,常常会涉及到MySQL索引的相关问题,包括索引的原理、优化技巧以及索引失效的原因等。 首先,MySQL索引是一种数据结构,用于快速定位和访问...

    Sql Server 数据库视图 索引等

    视图索引存储过程 事务显示事务 隐式事务 --索引 作用:提高查询效率 降低新增修改和删除的效率 --主键索引 唯一索引 聚集索引非聚集索引 --创建索引 --索引index 默认创建的是不唯一,非聚集索引

    SQL Server索引视图及性能提高简介

    从数据库管理系统 (DBMS) 的观点来看,视图是数据(元数据)的说明。创建典型视图时,通过 SELECT ...在视图扩展之后,查询优化器会为正在执行的查询编译单个执行计 划。 如果是非索引视图,视图在运行时将被实体化。

    MongoDB学习笔记(六) MongoDB索引用法和效率分析

    MongoDB中的索引其实类似于关系型数据库,都是为了提高查询和排序的效率的,并且实现原理也基本一致。由于集合中的键(字段)可以是普通数据类型,也可以是子文档。MongoDB可以在各种类型的键上创建索引。下面分别讲解...

    oracle、sql数据库批量建索引

    oracle、sqlserver数据库批量删建索引,方便好用,提高数据库查询效率,提升系统运行效率,特别是数据量比较大的情况下

    论文研究-直接序列扩频广义码索引调制.pdf

    发射端的信息比特分割为映射比特和调制比特,并分别映射为PN码组的索引和调制符号。调制符号的同相部分和正交部分再分别选择激活的PN码组进行扩频。通过增加每个传输时隙PN码的激活个数,可提高映射比特数目,提升...

    SqlServer性能优化高效索引指南

    性能不够,索引来凑 性能不好,建个索引就会好? 索引一定能提升性能? 高效索引指南 提高索引的存储效率 选择合适的索引 减少二次查找 ...

    重新创建全部表索引脚本

    MSSQL数据库使用一段时间后,会变慢,重建全部表索引后性能会有很大改观,执行该脚本就能一次性重新创建全部用户表索引,大大提高效率!

    Tools索引重建工具.rar

    检索全局sqlserver表,检查碎片率大于30并且数据量大于2500也的表,进行索引重建,从而提高查询效率,使用时直接放在BIN-DEBUG文件夹下即可,并自动检索配置文件

    ORACLE索引详解及SQL优化

    ORACLE索引详解及SQL优化,详细描述了几种常用索引原理以及创建方法,解读索引生效条件,以及在开发中常用的提高数据库效率、降低数据库资源消耗的方法。

    SuperMap Objects .NET 创建字段索引

    当需要频繁对某一字段的值进行查询、定位或者使用该字段做关联专题图时,为了提高数据查询或地图显示效率,往往需要对该字段创建索引。本范例将示范如何对非系统字段创建字段索引和删除字段已有索引。

    怎样提高数据库的查询效率

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id ...

Global site tag (gtag.js) - Google Analytics