`

创建表的过程(包含表、表空间、主外键、索引、注释),关于索引的理解

 
阅读更多

-- Create table:1.创建一个表
create table ACT_RU_IDENTITYLINK
(
  ID_           NVARCHAR2(64) not null,
  REV_          INTEGER,
  GROUP_ID_     NVARCHAR2(255),
  TYPE_         NVARCHAR2(255),
  USER_ID_      NVARCHAR2(255),
  TASK_ID_      NVARCHAR2(64),
  PROC_INST_ID_ NVARCHAR2(64),
  PROC_DEF_ID_  NVARCHAR2(64)
)
tablespace FTYTH
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 5
    next 1
    minextents 1
    maxextents unlimited
  );

----2.添加注释

comment on table ACT_RU_IDENTITYLINK
  is 'XXXX表';
-- Add comments to the columns
comment on column ACT_RU_IDENTITYLINK.REV_ 
  is '单位名称';
comment on column ACT_RU_IDENTITYLINK.TYPE_  
  is '基本工资*12';
-- Create/Recreate primary, unique and foreign key constraints :3.说明主键和外检
alter table ACT_RU_IDENTITYLINK
  add primary key (ID_)
  using index
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 14M
    next 1M
    minextents 1
    maxextents unlimited
  );
alter table ACT_RU_IDENTITYLINK
  add constraint ACT_FK_IDL_PROCINST foreign key (PROC_INST_ID_)
  references ACT_RU_EXECUTION (ID_);
alter table ACT_RU_IDENTITYLINK
  add constraint ACT_FK_TSKASS_TASK foreign key (TASK_ID_)
  references ACT_RU_TASK (ID_);
-- Create/Recreate indexes :4.创建索引。给这个表中的五个字段都创建了索引
create index ACT_IDX_ATHRZ_PROCEDEF on ACT_RU_IDENTITYLINK (PROC_DEF_ID_)
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
create index ACT_IDX_IDENT_LNK_GROUP on ACT_RU_IDENTITYLINK (GROUP_ID_)
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
create index ACT_IDX_IDENT_LNK_USER on ACT_RU_IDENTITYLINK (USER_ID_)
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 7M
    next 1M
    minextents 1
    maxextents unlimited
  );
create index ACT_IDX_IDL_PROCINST on ACT_RU_IDENTITYLINK (PROC_INST_ID_)
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 5M
    next 1M
    minextents 1
    maxextents unlimited
  );
create index ACT_IDX_TSKASS_TASK on ACT_RU_IDENTITYLINK (TASK_ID_)
  tablespace FTYTH
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 4M
    next 1M
    minextents 1
    maxextents unlimited
  );

 

 

下面是关于索引的理解:

第一个人:索引的作用就在于,为某个字段建立了索引之后,查询这个字段里面的数据的时候,效率更高,也就是快, 比如 create index abc on stu(age); 为stu表的age字段建立了索引,那么查询时,select * from stu where age > 10; 这个时候效率就高,主要体现在where语句,where age > 10 ,将age 作为查询的条件,age又加了索引所以高。 索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据,也就是当进行查询时,系统先搜索索引,从中找到数据的指针,再直接通过指针,直接定位到数据上,所以快。 缺点: 还有就是需要注意的,索引是查的效率高了,但是在表中插入或更新数据时,将有额外的操作来维护索引,所以其他的效率低了,还有占用存储空间,还有不要建立过多的索引,过多索引引起反作用!


第二个人:加快查询速度,唯一索引可以确定唯一性等等,但不是索引越多越好
 对于查询表越多速度越快,对于经常要更新的表,如果多了,反而会慢,因为要插入之前,先要扫描下索引


第三个人:你查字典,是从第一页开始往后翻呢?还是会按 拼音/部首 索引 查找?


第四个人:数据库会给表里的索引生成索引页 类似字典的目录 加快查询的效率. 不用全表扫描了`. 缺点就是当插入时当索引页不够的话 需要有索引页的IO开销

第五个人:把数据库看作一本书,把索引看作书的目录,这样查找就比较方便,快捷了


第六个人:索引的优缺点
1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的主列字段,一般是选择性较好的字段;B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;8、频繁进行数据操作的表,不要建立太多的索引;9、删除无用的索引,避免对执行计划造成负面影响;以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大。

  • 大小: 54.3 KB
  • 大小: 34.1 KB
  • 大小: 32.7 KB
  • 大小: 395.8 KB
  • 大小: 405.6 KB
分享到:
评论

相关推荐

    数据库设计约定.pdf

    1、主键 、主键 每张表必须包含物理⾃增主键,如主键字段不能满⾜业务需求,另建unique约束业务字段 2、外键 、外键 数据库表禁⽌主外键关联,需要在程序业务逻辑中维护。特殊情况如跟⽀付,财务模块相关,⽅可考虑...

    SQLServer数据库设计规范.txt

    pk+表名+主键标识 2.10 外键 fk+表名+主表名+外键标识 2.11 索引 idx+字段标识 2.12 Default df+Default标识 3 编程结构和描述 SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL...

    收获不知Oracle

    5.2.1.8 不可不说的主外键设计265 5.2.1.9 组合索引高效设计要领272 5.2.1.10变换角度看索引的危害289 5.2.1.11如何合理控制索引数量295 5.2.2 位图索引的玫瑰花之刺 297 5.2.2.1 统计条数奋勇夺冠297 5.2.2.2 即席...

    精通sql结构化查询语句

    23.5.3 创建系统运行的表 23.5.4 创建留言显示模块 23.5.5 创建留言添加模块 23.5.6 进入留言管理模块 23.5.7 创建留言修改模块 23.5.8 创建留言删除模块 23.6 小结 5.2.2 创建非簇索引 5.2.3 创建簇索引 5.2.4 创建...

    精通SQL 结构化查询语言详解

    全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言详解》内容丰富,讲解通俗易懂,具有很强的实用性和可操作性。 目录 第1章 数据库与SQL基础  1.1 数据库的基本概念  1.1.1 数据库的...

    Hibernate注释大全收藏

    Hibernate注释大全收藏 声明实体Bean @Entity public class Flight implements Serializable { Long id; @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } } @Entity ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    在创建表时,经常会创建该表的主键、外键、唯一约束、Check约束等  语法结构 create table 表名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) ...

    数据库表设计命名规范.doc

    数据库库表设计命名规范 引言 目前航运系统产品中的部分数据库表命名上存在不规范的情形,为进一步规范系统开 发过程中数据表、字段等实体的命名,特制定本规范要求在后续新增表、字段时,需要 严格按照本规范执行。...

    精通SQL--结构化查询语言详解

    15.3.5 使用enterprise manager创建存储过程和函数 315 15.3.6 修改和删除存储过程和函数 317 15.4 oracle中的流控制语句 319 15.4.1 条件语句 319 15.4.2 循环语句 320 15.4.3 标号和goto 322 15.5 oracle...

    数据库参考教程-数据库设计规范4net.xlsx

    ,S026,,,,, D005,主外键关系,主外键关系可以通过数据库内置机制显式创建,以保证级联操作和一致性约束,也可通过自定义的隐式方式建立。后者必须通过说明信息来向开发者传递设计意图、以及保证数据一致的关联机制。,...

    mysql数据库的基本操作语法

    注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录, 那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。 创建外键约束: 主表 create table ...

    Powerbuilder9.0实用教程源代码

    3.3.3 为数据表指定主键、外键和索引 87 3.3.4 浏览数据表 90 3.3.5 插入、修改和更新记录 91 3.3.6 为数据表创建视图 92 3.4 创建查询 94 3.4.1 新建查询 95 3.4.2 使用查询画板 95 3.4.3 预览查询结果 96 ...

    MySQL 5.1参考手册 (中文版)

    15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. ...

    mysql官方中文参考手册

    15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. ...

    MYSQL中文手册

    9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. ...

    MySQL 5.1参考手册中文版

    9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规...

    MySQL 5.1参考手册

    15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. ...

    MySQL 5.1中文手冊

    15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. InnoDB数据库的备份和恢复 15.2.9. 将InnoDB数据库移到另一台机器上 15.2.10. InnoDB事务模型和锁定 15.2.11. ...

    PHP和MySQL Web开发第4版pdf以及源码

    12.3.3 用EXPLAIN理解查询操作的工作过程 12.4 数据库的优化 12.4.1 设计优化 12.4.2 权限 12.4.3 表的优化 12.4.4 使用索引 12.4.5 使用默认值 12.4.6 其他技巧 12.5 备份MySQL数据库 12.6 恢复MySQL...

Global site tag (gtag.js) - Google Analytics