Oracle 数据库中的索引
来源:互联网 发布:python中split函数 编辑:程序博客网 时间:2024/05/21 17:46
在oracle数据库中的数据, 每一行都是用RowID来标识的,RowID能够标识数据库中的某一行的具体位置,在数据库中存有大量数据时, 要能找找到具体的某一个数据(RowID),这个时候就需要索引对象。
1)索引的工作原理: 在一个拥有大量数据的表中进行查询时, 如果没有创建索引,肯定会全表查询, 然后再将查询出的每一行数据和查询条件进行比对,最后返回满足条件的记录
创建索引之后:只需要在索引中找到符合查询条件字段的值, 然后再通过保存在索引中的RowID快速找到数据库对应的记录。
比喻:
如果将索引比作一本书的话, 那么索引就是这本书的目录。在没有目录的情况下,要查找到指定的类容,必须要阅读全文,有了目录之后, 可以通过目录很快地找到指定类容。
2)创建索引的原则:
索引应该建立在where字句经常用的列上,并且这些列作为查询条件查询的数据,占整个表数据低于15%,那么这些列可以建立索引。
经常使用某些列作为查询条件
对于多表查询,应该把索引建立在连接的列上
3)常用到的创建索引的方式:
单列索引:在一个列上建立的索引,比如:
-- Oracle默认建立B-tree索引 create index 索引名 on 表名(列名)复合索引:在两列或多列上建立的索引。在同一张表上可以有多个索引,但是这些索引所包含的列的组合必须不完全相同
create index emp_idx1 on emp(ename, job); create index emp_idx2 on emp(job, ename);不恰当的索引反而会降低系统性能,比如:很少或从不引用的字段;逻辑型字段,如男或女(是或否)等,因为:建立索引提高查询效率是以消耗一定的系统资源(额外的存储和增删改操作额外的索引更新时间)为代价的
4)索引的分类:分为B-树索引、反向索引、位图索引,B-树索引建立在重复值很少的列上,位图索引建立在重复值很多、不同值相对固定的列上。
按照索引列的个数,分为单列索引、复合索引;
按照索引列值的唯一性,分为唯一索引、非唯一索引。
此外还有函数索引、全局索引、分区索引等。
0 0
- Oracle 数据库中的索引
- Oracle数据库中的索引详解
- 索引在ORACLE数据库中的应用分析
- 索引在ORACLE数据库中的应用分析
- Oracle数据库中的索引(一)
- Oracle数据库中的索引(二)
- 索引在ORACLE数据库中的应用分析
- Oracle的索引在数据库中的存储
- Oracle数据库中的本地索引和全局索引的区别
- Oracle数据库中的本地索引和全局索引的区别
- 索引在ORACLE数据库中的应用分析(原创)
- 七.ORACLE数据库中的序列,同义词,索引等对象
- oracle数据库中的集合运算 ,索引,视图,伪劣
- 重建ORACLE数据库索引
- Oracle数据库索引
- ORACLE数据库索引失效
- Oracle 数据库索引
- ORACLE数据库索引失效
- 转 python中包含UTF-8编码中文的列表或字典的输出
- 46.使用Jsoup解析html获取数据
- mini2451上madplayer的移植
- Spark 大数据中文分词统计(三) Scala语言实现分词统计
- 一步一步的来封装自己的RecycleView
- Oracle 数据库中的索引
- 【Leetcode】110. Balanced Binary Tree 【DFS】
- Codeforces Round #368 (Div. 2) C
- B树、B-树、B+树、B*树
- android:ellipsize的使用
- jsp与servlet
- Struts2框架9.拦截器配置
- iOS swift-UIView随键盘弹出/隐藏而改变位置
- Python的各种解释器实现CPython | PyPy | Jython | IronPython等