切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Oracle
oracle数据库建立索引的原则
oracle数据库建立索引的原则
2020-06-02
Oracle
前端之家
前端之家
收集整理的这篇文章主要介绍了
oracle数据库建立索引的原则
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
数据库
建立索引的原则 1,确定针对该表的操作是大量的
查询
操作还是大量的增删改操作。 2,尝试建立索引来帮助特定的
查询
。检查自己的
sql
语句,为那些频繁在where子句中出现的字段建立索引。 3,尝试建立复合索引来进一步提高系统
性能
。
修改
复合索引将消耗更长时间,同时,复合索引也占磁盘空间。 4,对于小型的表,建立索引可能会影响
性能
5,应该避免对具有较少值的字段进行索引。 6,避免选择大型数据类型的列作为索引。 索引建立的原则 索引
查询
是
数据库
中重要的记录
查询
方法
,要不要进入索引以及在那些字段上建立索引都要和实际
数据库
系统的
查询
要求结合来考虑,下面给出实际中的一些通用的原则: 1. 在经常用作过滤器的字段上建立索引; 2. 在
sql
语句中经常进行GROUP BY、ORDER BY的字段上建立索引; 3. 在不同值较少的字段上不必要建立索引,如性别字段; 4. 对于经常存取的列避免建立索引; 5. 用于联接的列(主健/外健)上建立索引; 6. 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定; 7. 缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的
查询
;充分的利用索引可以减少表扫描I/0的
次数
,有效的避免对整表的
搜索
。当然合理的索引要建立在对各种
查询
的分析和预测中,也取决于DBA的所设计的
数据库
结构。 oracle 索引建立的若干原则 我们首先要考虑的是数据量,数据量级别的不同,要考虑的问题有很大区别。几千条记录建不建索引其实都无所谓了,差个几豪秒也感觉不出来,但数据量一旦要增长到百万, 千万级别,索引的重要性就体现出来了。没有索引一个
查询
可能要几个小时甚至几天才能出来,对
数据库
的影响不仅仅是
查询
速度的降低, 在io 上的花费和对
数据库
连接资源的占用甚至会拖跨
数据库
。那么怎样建立索引,建立什么类型的索引呢,应该按照几个方面来考虑。 1. 先要了解业务需求,总结出应用会按照哪几个字段来进行
查询
。例如一个人员
查询
系统可能会按照(姓名,身份证件号码,性别,住址,民族等),当然可能是几个字段的组合
查询
。 2. 确定了第一步后要估计数据的分布。相同值有多少,是不是均匀。如姓名字段就会有大量的重复情况;性别可能只有两个值(1,2 分别代表男,女),民族会有56 个。 3. 确定索引的类型。选择性高的字段建立B- 树索引最好,如果数据量太大,可考虑把索引分区,在并发情况下通常会表现很好。相当于把一棵很大的B树拆开成了多棵小树。只有几个值的字段如性别并且数据分布比较均匀,
查询
的平均命中率要是非常高就不需要建立索引,否则可以建立位图索引(但会影响并发)。 oracle建立索引原则 索引需要平衡query和DML的需要,常用于(子)
查询
的表应建立索引; 把索引建到不同的表空间中; 用统一的extent大小: 五个block的倍数或者tablespace指定的MINIMUM EXTENT的倍数; 创建索引考虑用NOLOGGING参数,重建索引的时候也一样; 创建索引时INITRANS值应该比相应的table的值高一些; 对常用
sql
语句的where条件中的列建立唯一索引或组合索引,组合条件
查询
中相应的组合索引更有效; 对于组合索引,根据列的唯一值概率,安排索引顺序; 如果一个列具有很低的数据基数,并且或者可具有空值,不应作为索引列; 如果where语句中不得不对
查询
列采用
函数
查询
,如upper
函数
,最好建立相应
函数
索引; 对于低基数集的列,并包含OR等逻辑运算,考虑用Bitmap索引,对于从大量行的表中返回大量的行时也可以考虑Bitmap索引; 避免在有大量并发DML运算的表中使用Bitmap索引;
上一篇:Oracle 建立索引及SQL优化
下一篇:Oracle Linux 6.8 �O置本地yum更新
猜你在找的Oracle相关文章
[Oracle]记一次由sequence引发的enq sv-contention等待事件
数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库...
作者:前端之家 时间:2021-02-21
oracle统计信息的锁定与解锁
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该...
作者:前端之家 时间:2021-02-21
【转】RMAN删除过期备份或非过期备份
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操...
作者:前端之家 时间:2021-02-21
数据恢复顾问(DRA)
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能...
作者:前端之家 时间:2021-02-21
RMAN备份与恢复(一)--认识RMAN
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(re...
作者:前端之家 时间:2021-02-21
RMAN备份与恢复(二)--RMAN常用操作学习
(1)连接目标数据库 在RMAN中可以建立与目标数据库或恢复目录数据库的连接。与目标数据库...
作者:前端之家 时间:2021-02-21
ORA-00245问题总结
(1)问题描述 在进行数据库归档备份时(备份归档日志文件和控制文件),有时成功,有时失...
作者:前端之家 时间:2021-02-21
使用RMAN对数据文件进行恢复
(1)备份数据库 在使用RMAN进行数据库恢复之前,先用RMAN进行全库备份 (2)删除数据文件...
作者:前端之家 时间:2021-02-21
Oracle使用fy_recover_data恢复truncate删除的数据
(一)truncate操作概述在生产中,truncate是使用较多的命令,在使用不当的情况下,往往会造...
作者:前端之家 时间:2021-02-21
备份与恢复(四)--RMAN使用恢复目录catalog来保存档案资料库
(一)恢复目录概述RMAN档案资料库用于存储数据库备份、修复以及恢复所需的信息。这些信息...
作者:前端之家 时间:2021-02-21
编程分类
MySQL
MsSQL
Oracle
Sqlite
Postgre SQL
Mariadb
MongoDB
NoSQL
HBase
JDBC
最新文章
• [Oracle]记一次由sequence
• oracle统计信息的锁定与解
• 【转】RMAN删除过期备份或
• 数据恢复顾问(DRA)
• RMAN备份与恢复(一)--认
• RMAN备份与恢复(三)--RM
• RMAN备份与恢复(二)--RM
• ORA-00245问题总结
• 使用RMAN对数据文件进行恢
• Oracle使用fy_recover_dat
热门标签
更多 ►
undo日志
persistent-c
mysql-error-
postal-code
sql-match-al
mysql-5.6
mysql-8.0
database-tri
安装路径
系统错误
data_dir
丢失文件
主从同步
sql_mode
数据库目录
匿名用户
character_se
ID归零
数据库位置
查询表
重复字段
查询字段
截断日志
SUSPECT
7391
Remote Serve
Linked Serve
玄学问题
登录不上
开启远程访问