网站首页 > 技术文章 正文
一、项目新建表、主键、索引注意事项
- 需要显示指定表和索引所属表空间
- 表是否分区根据业务实际需求确定,一般单表数据量超过千万以上,并有周期性删除历史数据需求的表需要考虑使用分区表。
- 主键默认就包含了一个唯一性索引,同样需要注意所属表空间问题。
二、建表、主建、索引的操作方法
下面就对上面所说的注意事项,举例说明实际建表、主建、索引的操作方法。
2.1 设定需求如下
建普通表t_normal, 字段id, name, start_time, content,
设定id列为表t_normal的主建,主键名称为pk_t_normal_id,
建立id,name两列的组合索引,索引名称为idx_t_normal。
2.1.1查询数据库有哪些表空间
select name from v$tablespace;
2.1.2本文档假设数据库有这两个业务用户的表空间:
NWPP_D_XXX 存放数据的表空间
NWPP_I_XXX 存放索引的表空间
注:新建表及其索引属于哪个表空间根据项目自己的规划自行判断。实际项目中用户自定义的表空间都是NWPP_D开头的是存放数据,NWPP_I开头的是存放索引。
2.2 普通表操作方法
2.2.1新建普通表示例
create table t_normal(id number, name varchar2(20), start_time date, content varchar2(200) )tablespace NWPP_D_XXX;
注:表示建立的t_normal表数据存放在NWPP_D_XXX表空间中。
2.2.2普通表建立主建示例
alter table t_normal add constraint pk_t_normal_id primary key(id) using index tablespace NWPP_I_XXX;
注:表示建立的主建pk_t_normal_id对应的唯一性索引pk_t_normal_id数据存放在NWPP_I_XXX表空间中。
2.2.3普通表建立索引示例
create index idx_t_normal on t_normal(id, name) tablespace NWPP_I_XXX;
注:表示建立的索引idx_t_normal数据存放在NWPP_I_XXX表空间中。
三、表、主键、索引的常规维护操作
3.1 表结构修改的方法举例:
3.1.1表添加一个字段
alter table t_part add content2 varchar2(50);
注:t_part表添加字段content2 数据类型varchar2(50)
3.1.2表添加多个字段
alter table t_part add ( content3 varchar2(50), content4 varchar2(50), content5 varchar2(50) );
注:t_part表添加3个字段content3, content4, content5 数据类型都为varchar2(50)
3.1.3表删除一个字段
alter table t_part drop column content5;
注:t_part表删除字段content5,一般不推荐删除表的字段。
3.1.4表删除多个字段
alter table t_part drop(content3, content4);
注:t_part表删除多个字段content3,content4,一般不推荐删除表的字段。
3.1.5表修改一个字段的数据类型
alter table t_part modify id number(7,0);
注:t_part表修改id字段的数据类型为number(7,0)
3.1.6表修改多个字段的数据类型
alter table t_part modify( name varchar2(50), content varchar2(50) );
注:t_part表修改name字段的数据类型为varchar2(50), 修改content字段的数据类型为varchar2(50)
3.2 表、主建、索引的日常维护举例:
3.2.1删除表的主建
alter table t_normal drop primary key;alter table t_part drop primary key;
注:删除普通表t_normal的主建,删除分区表t_part的主建。语法相同。
3.2.2删除表的索引
drop index idx_t_normal;drop index idx_t_part;
注:删除普通表的普通索引,删除分区表的分区索引。语法相同。
3.2.3重建/新建表的主建
普通表t_normal建立主建:
alter table t_normal add constraint pk_t_normal_id primary key(id) using index tablespace NWPP_I_XXX;
表的主建对应了一个唯一性索引,需要明确指定这个索引的存储表空间。
3.2.4重建/新建表的索引
普通表在线建立索引:
create index idx_t_normal on t_normal(id, name) tablespace NWPP_I_XXX online;
每张表的索引个数不宜超过4个,否则会对此表的入库性能有影响。
若表中的数据量在千万级别以上,且确认要新建索引,请慎重操作。
上面只是之前工作上的一些范例,大家可以根据自己实际需求做改变,万变不离其宗。
后面会分享更多关于运维DBA方面的内容,感兴趣的朋友可以关注下。
猜你喜欢
- 2024-10-13 oracle中system、sysaux或者临时表空间占用过大一般是什么原因?
- 2024-10-13 oracle数据库定期备份与删除过期备份文件
- 2024-10-13 Oracle审计日志过大?如何清理及关闭审计机制?
- 2024-10-13 oracle下使用oci快速卸载数据文件,12c的1017问题
- 2024-10-13 详解Oracle 11g如何清理数据库的历史日志
- 2024-10-13 常用SQL系列之(六):删除方式、数据库、表及索引元信息查询等
- 2024-10-13 Oracle 分区表 范围分区、列表分区、HASH分区及组合分区
- 2024-10-13 记一次生产数据库SYSAUX表空间清理过程,值得收藏
- 2024-10-13 关于Oracle数据库12c 新特性总结 oracle数据库12c版本
- 2024-10-13 SQL中的DROP操作:撤销索引、表和数据库的利器
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)