oracle主键和索引
主键:
能够唯一标识一条记录的字段为主键(亦或主码),不能重复的,不允许为空。
作用:用来保证数据完整性
个数:主键只能有一个
索引:
作用:是提高查询排序的速度
个数:一个表可以有多个索引
常用索引类型:
Non-unique(非唯一索引,常用)
Unique(唯一索引,该字段没有重复值,但可以有一个空值)
Bitmap(位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况)
建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引(现在硬盘和内存的空间都很大,此问题可以忽略)。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性(建立索引的查询的效率会大大提高,建立索引的性价比高)。
使用原则:
1. 在大表上建立索引才有意义。
2. 在where子句或是连接条件上经常使用的列上建立索引,很少或从不引用的字段不建索引。
3. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。
4. 复合索引的几个字段是否经常同时以AND方式出现在Where子句中,单字段查询极少甚至没有,将这多个字段建立复合索引。
5. 如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引。
6. 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引。
7. 逻辑型的字段,如男或女(是或否)等,不建立索引。
索引失效情况:
1. != 将不使用索引,索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中。
2. ||是字符连接函数. 就象其他函数那样,停用了索引。
3. + 是数学函数. 就象其他数学函数那样,停用了索引。
4. like "%_" 百分号在前时,停用了索引。
5. 字符型字段为数字时在where条件里不添加引号时,停用了索引。
6. 单独的>,<。
7. not in ,not exist。
oracle主键和索引的更多相关文章
- Oracle基础维护02-表、主键、索引、表结构维护手册
		
目录 一.项目新建表.主键.索引注意事项 二.举例说明建表.主建.索引的操作方法 2.1 设定需求如下 2.1.1 查询数据库有哪些表空间 2.1.2 本文档假设数据库有这两个业务用户的表空间 2.2 ...
 - Oracle 添加主键和索引
		
数据的主键和索引一般情况下都是必须的,特别是表有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率: 一.创建表的同时创建主键约束 (1)无命名 create table studen ...
 - Oracle外键不加索引会引起死锁问题
		
转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...
 - 删除表空间的时候遇到的问题:ORA-02429: 无法删除用于强制唯一/主键的索引
		
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用.1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONST ...
 - ora-02429:无法删除用于强制唯一/主键的索引
		
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONS ...
 - oracle主键自增
		
oracle主键自增 1建立数据表 create table Test_Increase( userid number(10) primary key, /*主键,自动增加*/ ...
 - SQL语句新建表,同时添加主键、索引、约束
		
SQL语句新建数据表 主键,索引,约束 CREATE TABLE [dbo].[T_SendInsideMessageRec]( [SendInsideMID] [uniqueidentifier ...
 - oracle 主键应用序列和触发器实现自动增长
		
oracle 主键自动增长 这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create table simon_example ( id number(4) not null pr ...
 - oracle 主键自动增长
		
oracle 主键自动增长 2009-12-11 16:07:00| 分类: 数据库资料|字号 订阅 这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create tabl ...
 
随机推荐
- win10中使用 Windows照片查看器
			
新建一个txt,将文件后缀名改为 .reg 用记事本或者其他txt编辑器编辑,复制下面文字: Windows Registry Editor Version 5.00 ; Change Extensi ...
 - Machine Learning 思维导图
			
Feature Enigneering 经用 sns.distplot 测试 一个Series 做 StandardScaler().fit_transform(Seriese) 之前和之后的图形形状 ...
 - IIS部署项目
			
控制面板\所有控制面板项\管理工具-->Internet 信息服务(IIS)管理器 随便填个名称,项目的路径,选择一个新的端口.
 - 中国交建  WAF 基础平台  http://waf.ccccltd.cn/
			
中国交建 WAF 基础平台 http://waf.ccccltd.cn/
 - 【R】资源整理
			
1.25本Python电子书 http://python.jobbole.com/29281/ Think Stats Dive Into Python A Byte Of Python Think ...
 - CRMEB系统开发文档
			
CRMEB系统开发文档 https://gitee.com/ZhongBangKeJi/CRMEB hibernate:学习文档https://blog.csdn.net/u013087513/art ...
 - django中常用的数据查询方法
			
https://blog.csdn.net/chen1042246612/article/details/84071006
 - js &运算符什么意思,什么用处
			
“&&”连接两个表达式,当两侧表达式都为真时,返回TRUE.有一个为假则返回FALSE. 也就是说,符号前面的如果为true,就会执行符号后面的语句,如果符号前面的为false,那么后 ...
 - bootstrap学习(一)栅格、布局
			
栅格: 栅格将整个屏幕分为12份,当使用单一的一组 .col-md-* 栅格类,就可以创建一个基本的栅格系统,在手机和平板设备上一开始是堆叠在一起的(超小屏幕到小屏幕这一范围),在桌面(中等)屏幕设备 ...
 - 【微信小程序canvas】实现小程序手写板用户签名(附代码)
			
工作中公司业务需要的微信小程序用户签字功能 先看效果图: wxml: <view class="wrapper"> <view class="handB ...