- 浏览: 254687 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
一、索引简介
1、索引相当于目录
2、索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率。
3、索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散的列上,避免对同一张表创建过多的索引
4、索引的使用对用户来说是透明的,由系统来决定什么时候使用索引。
5、Oracle支持多种类型的索引,可以按列的多少、索引值是否唯一和索引数据的组织形式对索引进行分类,以满足各种表和查询条件的要求。(请见附件)
a. 单列索引和复合索引
b.B树索引(create index时默认的类型)
B树索引中所有叶子节点都具有相同的深度,所以不管查询条件如何,查询速度基本相同。另B树索引能够适应各种查询条件,包括精确查询、模糊查询和比较查询
--Unique 唯一索引 值唯一,但允许存在null,主键默认存在唯一索引,但列不能为null
--Non-Unique:非唯一索引,其索引值可以重复,允许为NULL。默认情况下,Oracle创建的索引是非唯一索引
--Reverse Key:反向关键字索引。通过在创建索引时指定“REVERSE”关键字,可以创建反向关键字索引,被索引的每个数据列中的数据都是反向存储
的,但仍然保持原来数据列的次序
c.位图索引(对列值范围少,如性别 政治面貌适用,而不是默认的B树索引)
d.函数索引
当需要经常访问一些函数或表达式时,可以将其存储在索引中,当下次访问时,由于该值已经计算出来了,因此,可以大大提高那些在WHERE子句中包含该函数或
表达式的查询操作的速度;
函数索引既可以使用B树索引,也可以使用位图索引。
二、管理索引的原则
使用索引应该遵循以下一些基本的原则。
1.小表不需要建立索引。
2.对于大表而言,如果经常查询的记录数目少于表中总记录数目的15%时,可以创建索引。这个比例并不绝对,它与全表扫描速度成反比。
3.对于大部分列值不重复的列可建立索引。
4.对于基数大的列,适合建立B树索引,而对于基数小的列适合建立位图索引。
5.对于列中有许多空值,但经常查询所有的非空值记录的列,应该建立索引。
6.LONG和LONG RAW列不能创建索引。
7.经常进行连接查询的列上应该创建索引。
8.在使用CREATE INDEX语句创建查询时,将最常查询的列放在其他列前面。
9.维护索引需要开销,特别时对表进行插入和删除操作时,因此要限制表中索引的数量。对于主要用于读的表,则索引多就有好处,但是,一个表如果经常被更改,则索引应少点。
10.在表中插入数据后创建索引。如果在装载数据之前创建了索引,那么当插入每行时,Oracle都必须更改每个索引。
1、索引相当于目录
2、索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率。
3、索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散的列上,避免对同一张表创建过多的索引
4、索引的使用对用户来说是透明的,由系统来决定什么时候使用索引。
5、Oracle支持多种类型的索引,可以按列的多少、索引值是否唯一和索引数据的组织形式对索引进行分类,以满足各种表和查询条件的要求。(请见附件)
a. 单列索引和复合索引
b.B树索引(create index时默认的类型)
B树索引中所有叶子节点都具有相同的深度,所以不管查询条件如何,查询速度基本相同。另B树索引能够适应各种查询条件,包括精确查询、模糊查询和比较查询
--Unique 唯一索引 值唯一,但允许存在null,主键默认存在唯一索引,但列不能为null
--Non-Unique:非唯一索引,其索引值可以重复,允许为NULL。默认情况下,Oracle创建的索引是非唯一索引
--Reverse Key:反向关键字索引。通过在创建索引时指定“REVERSE”关键字,可以创建反向关键字索引,被索引的每个数据列中的数据都是反向存储
的,但仍然保持原来数据列的次序
c.位图索引(对列值范围少,如性别 政治面貌适用,而不是默认的B树索引)
d.函数索引
当需要经常访问一些函数或表达式时,可以将其存储在索引中,当下次访问时,由于该值已经计算出来了,因此,可以大大提高那些在WHERE子句中包含该函数或
表达式的查询操作的速度;
函数索引既可以使用B树索引,也可以使用位图索引。
二、管理索引的原则
使用索引应该遵循以下一些基本的原则。
1.小表不需要建立索引。
2.对于大表而言,如果经常查询的记录数目少于表中总记录数目的15%时,可以创建索引。这个比例并不绝对,它与全表扫描速度成反比。
3.对于大部分列值不重复的列可建立索引。
4.对于基数大的列,适合建立B树索引,而对于基数小的列适合建立位图索引。
5.对于列中有许多空值,但经常查询所有的非空值记录的列,应该建立索引。
6.LONG和LONG RAW列不能创建索引。
7.经常进行连接查询的列上应该创建索引。
8.在使用CREATE INDEX语句创建查询时,将最常查询的列放在其他列前面。
9.维护索引需要开销,特别时对表进行插入和删除操作时,因此要限制表中索引的数量。对于主要用于读的表,则索引多就有好处,但是,一个表如果经常被更改,则索引应少点。
10.在表中插入数据后创建索引。如果在装载数据之前创建了索引,那么当插入每行时,Oracle都必须更改每个索引。
发表评论
-
oracle sql优化
2013-09-23 14:29 6591.绑定变量 不适用在OLAP系统中。 因为在OLAP中, ... -
阅读笔记 SQL
2013-08-14 18:24 830Start with...Connect By子句递归查询一般 ... -
oracle 锁 分析
2013-06-18 10:57 4791. 分为 tx 和 tm 。 即 行级 和 表级 其中 ... -
Oracle的TX锁(行级锁、事务锁)
2013-06-18 10:04 940问题:如何使用事务? ... -
mysql 时间戳自动更新
2013-04-09 10:24 984-- Table "pnodetail" ... -
阅读笔记
2013-02-07 17:24 431. 在OLTP系统装要注意sql的硬解析,但是在OLA ... -
synonym
2013-02-07 16:58 956建立一个同义词可以排除一个对象名字的限制. 如果你的数据库有多 ... -
oracle schema
2013-02-07 16:50 765A schema is a collection of dat ... -
物化视图的使用分析
2013-02-05 17:27 7871. 在 深入浅出 系列中,作者列举了一个例子来说明。 ... -
Oracle编程艺术阅读笔记-2
2013-01-29 10:40 7771. 位图索引。 不 ... -
Oracle:位图索引与死锁-2
2013-01-28 18:24 838位图索引被存储为压缩的索引值,其中包含了一个范围内的ROWID ... -
Oracle:位图索引与死锁-1
2013-01-28 18:04 870B 树索引更适合索引动态表的 OLTP 环境,而位图索引更适合 ... -
Oracle编程艺术阅读笔记-1
2013-01-24 18:48 8731. 绑定变量。 不使用会产生的影响: 每次运 ... -
JAVA完全控制Oracle中BLOB、CLOB说明
2012-12-28 17:07 852网络上很多关于JAVA对Oracle中BLOB、CLOB类型字 ... -
H2数据库的使用
2012-12-13 18:40 7731.下载h2的jar,例如h2-1.3.170.jar 2.c ... -
JTA
2012-12-05 17:35 976要理解 JTA 的实现原理 ... -
oracle 体系结构
2012-12-03 23:13 721[img][/img] oracle工作原理 ... -
oracle 存储过程实例-4
2012-12-03 23:04 542--错误处理部分。 --自 ... -
oracle 存储过程实例-4
2012-12-03 23:02 846--错误处理部分。 --自定义异常处理 CREATE OR ... -
oracle 存储过程实例-3
2012-12-03 21:42 816PROCEDURE autoissuereturns ( ...
相关推荐
#### 一、索引简介 - **基本概念** - **定义**: 索引是一种特殊的数据结构,用于提高数据库中数据检索的速度。 - **功能**: 存储引擎利用索引来快速定位数据记录的位置。 - **索引的优点** 1. **唯一性**: 主键...
【MySQL索引简介】 MySQL数据库中的索引是一种特殊的数据结构,用于加速对数据库表中数据的访问。它通过对表中一列或多列的值进行排序,使得数据查询过程更为高效。索引的作用就像书籍的目录,能快速指引我们找到所...
mysql结构和索引简介,包含日志文件和数据文件的分析。索引的分类及其。聚集索引和非聚集索引的概念和区别 及其简单介绍B Tree 和B+ Tree的区别和概念
#### 索引简介 索引的主要目的是加快数据库中的数据访问速度。此外,索引还可以帮助实施某些约束,例如唯一性和外键约束。虽然理论上可以不使用任何索引运行查询,但这往往会导致执行时间过长。 #### 常见索引类型...
#### 一、索引简介 索引是数据库管理系统中的一项关键技术,它可以帮助我们快速定位数据,显著提升数据检索的效率。索引类似于书籍中的目录,使得我们可以跳过不必要的部分直接找到所需的信息。 1. **索引的作用**...
本文将深入探讨几种主要的Oracle索引类型,包括B*Tree索引、反向索引、降序索引以及位图索引,并分析它们的特点和适用场景。 1. **B*Tree索引** B*Tree(平衡多路搜索树)索引是最常见的索引结构,是默认的索引...
#### 一、B树索引简介 在数据库管理系统中,索引是用于提高数据检索效率的重要工具之一。其中,B树索引是一种广泛应用于关系型数据库中的数据结构。B树(Balance Tree)是一种自平衡的树结构,能够保持数据有序,...
#### 一、EI工程索引简介 - **创立时间**:1884年。 - **出版者**:美国工程信息公司(Engineering Information Inc.)。 - **特点**:综合性文摘刊物。 - **网络版**:EiCompendex,《工程索引》的网络版本。 ###...
1. **索引简介** - **含义与特点**:索引是数据库为了加速数据检索而创建的一种特殊数据结构,它存储了数据表中部分或全部列的值,以及指向对应记录的指针。优点在于显著提高了查询速度,但缺点是会占用额外的存储...
##### 引文索引简介 引文索引是一种特殊的索引形式,它记录了文献之间的引用关系。这种索引方式超越了传统基于关键词的主题索引,而是通过追踪一篇文献被其他文献引用的情况来揭示其学术影响力。引文索引背后的核心...
【SQL索引、试图简介】 SQL索引是数据库管理系统中用于加速数据检索的关键技术,它类似于书籍中的索引,能够帮助快速定位到所需的数据。在数据库中,索引的使用可以显著提高查询效率,尤其是在处理大量数据时。然而...
一、索引简介 索引是一种根据数据库表中一个或多个列的值进行排序的结构。索引提供指针以指向存储在表中的数据值,然后根据指定的排序次序排列这些指针。索引键用于创建索引的列。 二、索引类型 1. 聚集索引:...
在SQL Server中,索引是提升数据库性能的关键因素,它们帮助快速定位数据,减少磁盘I/O操作,从而加速查询速度。本篇文章将探讨聚簇索引、非聚簇索引以及覆盖索引的使用和维护策略。 1. **聚簇索引**:聚簇索引决定...
【索引使用简介】 在数据库管理系统中,索引是一种数据结构,它能够加快对表中数据的访问速度。索引的使用是优化SQL查询性能的关键因素,但也需要谨慎处理,因为它们会对数据插入、更新和删除操作(DML操作)产生...
#### 位图索引简介 位图索引在某些特定场景下比B-树索引更有效,尤其是在处理高基数数据列时。它同样采用B-树结构,但在叶子结点存储的是位图,而非ROWID。 **结构示例:** - **索引项头(EntryHeader):** 同B-...
一、索引简介 1、索引相当于目录 2、索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率。 3、索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取值分散...
1. 位图索引简介 位图索引是一种常用的数据库和搜索引擎技术,通过位级并行运算可以明显地加速查询速度。但是,位图索引也可以占用大量内存空间,于是压缩位图索引是非常必要的。Oracle公司率先使用RLE对位图索引...
Oracle数据库的索引简介、创建和使用小技巧
### MySQL数据库及索引详解 #### 一、MySQL简介与数据库发展 MySQL是一款非常流行的开源关系型数据库管理系统,由瑞典MySQL AB公司开发。它以其高性能、稳定性和易用性著称,广泛应用于Web应用程序和企业级系统中...