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

【转载】索引

SQL 
阅读更多
一、概述

索引是用于加速数据存取数据对象,合理的使用索引可以大大降低I/O次数,从而提高数据访问性能。索引有很多种我们主要介绍常用的几种。

  

二、创建索引

1、单列索引

单列索引是基于单个列所建立的索引。

sql>create index 索引名 on 表名(列名);

  

2、复合索引

复合索引是基于两列或是多列的索引,在同一张表上可以有多个索引,但是要求列的组合必须不同。

sql>create index emp_index1 on emp(ename,job);

sql>create index emp_index2 on emp(job,ename);

  

三、使用索引的原则

使用原则:

1、在大表上建立索引才有意义。

2、在where子句或是连接条件上经常饮用的列上建立索引。

3、索引的层次不要超过4层。

  

四、索引缺点分析

索引有一些先天不足:

1、建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2、更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,一维持数据和索引的一致性。

实践表明,不恰当的索引不但于事无补,反而会降低系统性能。因为大量的索引在进行插入、修改和删除操作时比没有索引花费更多的系统时间。

比如在如下字段建立索引应该是不恰当的:

1、很少或从不引用的字段。

2、逻辑型的字段,如男或女(是或否)等。

综上所述,提高查询效率是以消耗一定的系统资源为代价的,索引不能盲目的建立,这是考验一个DBA是否优秀的很重要的指标。

  

五、其他索引

按照数据存储方式,可以分为B*树、反向索引、位图索引。

按照索引列的个数分类,可以分为单列索引、复合索引。

按照索引列值的唯一性,可以分为唯一索引和非唯一索引。

此外还有函数索引,全局索引,分区索引……

  

六、显示索引信息

1、显示表的所有索引

在同一张表上可以有多个索引,通过查询数据字典视图dba_indexs和user_indexs,可以显示索引信息。其中dba_indexs用于显示数据库所有的索引信息,而user_indexs用于显示当前用户的索引信息。

sql>select index_name,index_type from user_indexes where table_name='表名';

  

2、显示索引列

通过查询数据字典视图user_ind_columns,可以显示索引对应的列的信息。

sql>select table_name,column_name from user_ind_columns where index_name='IND_ENAME';

分享到:
评论

相关推荐

    【转载】浅谈基于索引的SQL语句优化方法

    本文主要探讨的是基于索引的SQL语句优化方法,旨在帮助读者深入理解如何利用索引来提高查询效率。索引是数据库管理系统中的一个重要概念,它能显著加速数据检索过程,尤其是在处理大量数据时。 一、索引的基本原理 ...

    资料中国所有省对应省对市的详细索引

    中国所有省对应省对市的详细索引,很详细,欢迎转载!

    Liferay_6.1开发学习转载别人的文档.doc

    Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal。Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织。

    iOS tabview如何添加字母索引

    本文实例为大家分享了iOS tabview添加字母索引的具体代码,供大家参考,具体内容如下 文章转载自大神源码传送门 1、将汉字转换成首字母 //系统获取首字母 - (NSString *) pinyinFirstLetter:(NSString*)...

    sqlserver学习资料(转载!)

    - 索引提高查询速度,分为聚集索引(数据行按照索引顺序存储)和非聚集索引(索引与数据行分开存储)。 - PRIMARY KEY和UNIQUE约束自动创建聚集索引。 - 使用INDEX关键字创建非聚集索引。 5. 视图与存储过程: ...

    list例子转载他人

    这个“list例子转载他人”的内容可能是分享了一些关于 Python list 的操作和使用技巧。 首先,`list` 的创建非常简单,可以通过方括号 `[]` 来实现。例如: ```python my_list = [1, 2, 'three', 4.0] ``` 这里创建...

    本人提供SQL语句大全(转载) 12009年04月28日 星期二 19:35SQL语句大全(转载)

    - **索引与查询优化**:合理的索引设计和使用可以极大地提升查询速度。例如,在WHERE子句中先使用覆盖范围广的索引列可以减少全表扫描的次数。 ### 8. SQL执行顺序的影响 - **WHERE子句**的顺序:将过滤效果最好的...

    SQL笔试题(转载的)

    7. **索引(INDEX)**:提高数据查询速度,分为唯一索引和非唯一索引,聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)。 8. **视图(VIEW)**:虚拟表,基于一个或多个表的查询结果,可以被用作...

    亿级数据的高并发通用搜索引擎架构设计[转载]

    对于亿级数据,传统的全表扫描方法显然是不可行的,因此我们需要引入倒排索引(Inverted Index)的概念。倒排索引是一种用于全文检索的高效数据结构,它将每个词映射到包含该词的文档列表,从而极大地提高了查询速度...

    标题+索引按钮jQuery幻灯片

    标题+索引按钮jQuery幻灯片是一款带有文字标题,索引按钮,淡入淡出切换效果,自动轮播切换的jQuery幻灯片代码。本作品由【站长素材】收集整理,转载请注明出处!

    Java字节码(.class文件)格式详解((转载)

    3. 类信息:包括类的访问标志(是否为public、abstract等)、类名索引、父类名索引、接口索引集合。 4. 字段表集合:记录类或接口中的字段(成员变量)信息,包括访问标志、名称索引、描述符索引以及属性表集合。 ...

    Matlab 常用图像函数(二)(转载).doc

    1. 对于索引色图像,可以使用`B=double(A)+1`,因为索引色的值从1开始,转换后需要加上1。 2. 对于索引色或真彩色图像,可以使用`B=double(A)/255`,将0到255的值转换为0到1的范围。 3. 对于二值图像,直接使用`B=...

    《转载》oracle1000问

    - 索引(Indexes):加速查询速度的数据结构,分为B树索引、位图索引等。 - 用户(Users):数据库的使用者,拥有特定的权限和对象。 2. **SQL语言**: - DDL(Data Definition Language):用于创建和修改...

    秒杀应用的MySQL数据库优化 (转载)

    最后,定期对数据库进行**维护和监控**,包括检查索引碎片、分析慢查询日志、调整参数配置等,这些都是保持数据库高效运行的重要环节。 通过以上这些优化措施,可以显著提升秒杀应用的MySQL数据库性能,应对高并发...

    【转载】解决CHM文件打开无法显示网页的问题 - 耕者 - 博客园.rar

    2. **索引损坏**:如果CHM文件的索引部分出现问题,也可能导致内容无法正常显示。索引是CHM文件中的一个重要组成部分,用于快速定位内容。 3. **文件损坏**:在传输过程中,CHM文件可能因网络问题而损坏,导致无法...

    【转载】javaScript常用的东东

    - `lastIndexOf()`: 从后向前查找指定元素的索引,找不到则返回-1。 - `forEach()`: 遍历数组中的每个元素,执行提供的函数。 - `map()`: 创建一个新数组,其结果是调用提供的函数的返回值。 - `filter()`: 创建...

    SQL大总结——转载经典——价值过亿

    8. **索引**:索引可以显著提高查询速度,但也会占用存储空间,合理创建和管理索引是优化数据库性能的关键。 9. **事务处理**:SQL支持ACID(原子性、一致性、隔离性和持久性)属性的事务,确保数据操作的完整性和...

Global site tag (gtag.js) - Google Analytics