- 浏览: 45495 次
- 性别:
- 来自: 大连
最新评论
一、概述
索引是用于加速数据存取数据对象,合理的使用索引可以大大降低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';
索引是用于加速数据存取数据对象,合理的使用索引可以大大降低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';
发表评论
-
oracle性能优化
2010-12-02 17:55 0T -
将Sequence统一加100000
2010-12-01 10:46 743select 'alter sequence ' || t1. ... -
Oracle 事件跟踪
2010-11-19 16:15 1161--查询30分钟前的数据select * from t as ... -
查询表属于的库和用户
2010-11-19 11:44 783select * from user_tables t whe ... -
创建返回值为自定义表的函数
2010-11-17 13:22 970CREATE OR REPLACE FUNCTION 函数名( ... -
找回被删除的数据
2010-11-12 17:00 737利用 delete from chg_number; 时 找 ... -
oracle 行转列
2010-10-11 17:29 781select '{' || d.il1_id || '}{' ... -
从dual表中查询返回多行记录
2010-10-11 17:28 4339select * from dual connect by 0 ... -
查找数据库锁
2010-10-11 17:19 607SELECT /*+ rule */ lpad( ... -
【转载】记录被锁解锁方法
2010-09-25 19:56 813今天,在使用update更新一条记录时,怎么都更新不了,一直处 ... -
【转载】110个常用函数整理汇总
2010-09-25 19:55 9761. ASCII 返回与指定的字符对应的十进制数; SQL& ... -
【转载】学习之Dual表
2010-09-25 19:49 727最近在使用Oracle时遇到一个特殊的表Dual。想必了解Or ... -
【转载】job简介
2010-09-25 19:48 728步骤如下: 1、创建一张表g_test create ta ... -
【转载】 错误一览表
2010-09-25 19:45 1060ORA-00001: 违反唯一约束 ... -
【转载】集合操作函数
2010-09-25 19:43 689集合操作符专门用于合并多条select 语句的结果,包括:UN ... -
【转】临时表 优化查询速度
2010-09-25 19:42 6501、前言 目前所有使用Oracle作为数据库支撑平台 ... -
【转载】权限
2010-09-25 19:34 673一、概述 这一部分我 ... -
【转载】约束
2010-09-25 19:32 660一、维护数据的完整性 概述:数据的完整性用于确保数据库数据 ... -
【转载】数据库管理
2010-09-25 19:31 624一、数据库管理员 概述:每个Oracle数据库应该至少有一名 ... -
【转载】函数的使用
2010-09-25 19:24 569一、字符函数 介绍:字符函数是Oracle中最常用的函数,我们 ...
相关推荐
本文主要探讨的是基于索引的SQL语句优化方法,旨在帮助读者深入理解如何利用索引来提高查询效率。索引是数据库管理系统中的一个重要概念,它能显著加速数据检索过程,尤其是在处理大量数据时。 一、索引的基本原理 ...
中国所有省对应省对市的详细索引,很详细,欢迎转载!
Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal。Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织。
本文实例为大家分享了iOS tabview添加字母索引的具体代码,供大家参考,具体内容如下 文章转载自大神源码传送门 1、将汉字转换成首字母 //系统获取首字母 - (NSString *) pinyinFirstLetter:(NSString*)...
- 索引提高查询速度,分为聚集索引(数据行按照索引顺序存储)和非聚集索引(索引与数据行分开存储)。 - PRIMARY KEY和UNIQUE约束自动创建聚集索引。 - 使用INDEX关键字创建非聚集索引。 5. 视图与存储过程: ...
这个“list例子转载他人”的内容可能是分享了一些关于 Python list 的操作和使用技巧。 首先,`list` 的创建非常简单,可以通过方括号 `[]` 来实现。例如: ```python my_list = [1, 2, 'three', 4.0] ``` 这里创建...
- **索引与查询优化**:合理的索引设计和使用可以极大地提升查询速度。例如,在WHERE子句中先使用覆盖范围广的索引列可以减少全表扫描的次数。 ### 8. SQL执行顺序的影响 - **WHERE子句**的顺序:将过滤效果最好的...
7. **索引(INDEX)**:提高数据查询速度,分为唯一索引和非唯一索引,聚集索引(Clustered Index)和非聚集索引(Non-Clustered Index)。 8. **视图(VIEW)**:虚拟表,基于一个或多个表的查询结果,可以被用作...
对于亿级数据,传统的全表扫描方法显然是不可行的,因此我们需要引入倒排索引(Inverted Index)的概念。倒排索引是一种用于全文检索的高效数据结构,它将每个词映射到包含该词的文档列表,从而极大地提高了查询速度...
标题+索引按钮jQuery幻灯片是一款带有文字标题,索引按钮,淡入淡出切换效果,自动轮播切换的jQuery幻灯片代码。本作品由【站长素材】收集整理,转载请注明出处!
3. 类信息:包括类的访问标志(是否为public、abstract等)、类名索引、父类名索引、接口索引集合。 4. 字段表集合:记录类或接口中的字段(成员变量)信息,包括访问标志、名称索引、描述符索引以及属性表集合。 ...
1. 对于索引色图像,可以使用`B=double(A)+1`,因为索引色的值从1开始,转换后需要加上1。 2. 对于索引色或真彩色图像,可以使用`B=double(A)/255`,将0到255的值转换为0到1的范围。 3. 对于二值图像,直接使用`B=...
- 索引(Indexes):加速查询速度的数据结构,分为B树索引、位图索引等。 - 用户(Users):数据库的使用者,拥有特定的权限和对象。 2. **SQL语言**: - DDL(Data Definition Language):用于创建和修改...
最后,定期对数据库进行**维护和监控**,包括检查索引碎片、分析慢查询日志、调整参数配置等,这些都是保持数据库高效运行的重要环节。 通过以上这些优化措施,可以显著提升秒杀应用的MySQL数据库性能,应对高并发...
2. **索引损坏**:如果CHM文件的索引部分出现问题,也可能导致内容无法正常显示。索引是CHM文件中的一个重要组成部分,用于快速定位内容。 3. **文件损坏**:在传输过程中,CHM文件可能因网络问题而损坏,导致无法...
- `lastIndexOf()`: 从后向前查找指定元素的索引,找不到则返回-1。 - `forEach()`: 遍历数组中的每个元素,执行提供的函数。 - `map()`: 创建一个新数组,其结果是调用提供的函数的返回值。 - `filter()`: 创建...
8. **索引**:索引可以显著提高查询速度,但也会占用存储空间,合理创建和管理索引是优化数据库性能的关键。 9. **事务处理**:SQL支持ACID(原子性、一致性、隔离性和持久性)属性的事务,确保数据操作的完整性和...