首页 > 其他 > 详细

建表规范

时间:2019-07-12 16:12:31      阅读:88      评论:0      收藏:0      [点我收藏+]

最近项目需要整理评审pdm,学到了一些,在此总结几点

 

1.资源是宝贵的

数据库本质上还是将数据存储在磁盘上,只是通过DBMS进行管理,和其他软件系统一样,需要各种资源来提供支持,主要包括磁盘、CPU、内存、IO、网络,如果在资源满载的情况下,及时设计的数据库足够优秀也没有办法提升效率,毕竟巧妇难为无米之炊。而且数据库中的数据不是简单的在磁盘上存储一份,需要考虑到备份、容灾、以及索引等想关的数据,所以,在设计数据库的时候,只将必要的数据入库。比如一些实时的数据就不用入库了。

 

2.数据生命周期控制

一张表中的数据最好不要有搬表、delete操作,因为delet操作只是删除数据,但是并不会释放空间,truncate才会释放空间。

但如果不搬表,所有数据都放一张表就会太挤,查询操作的时候会非常慢,影响效率,这时候就可以对表进行分表或分区处理,在本项目中的要求是一张表或者分区的数据不能超过500W条。比如一张数据需要保留一年的表,可以分成12个分区,并创建12个表空间,每个分区对应一个表空间,过期了就将相应的表空间进行重建,清掉过期的数据,同时不会影响其他分区的数据,且资源得到了释放。

 

3.表空间的用法

上面提到了分区的时候可以每个分区对应一个表空间,事实上为了效率,不光会为表数据创建表空间,索引也会创建对应的表空间,还是上面的例子,12个分区就需要24个表空间,其中表数据12个,表索引12个;另外参数一类表空间,也是两个,表数据一个,表索引一个;用户数据一类表空间;默认表空间...等等。表空间的设计需要根据数据的生命周期,表数据的用途来划分,特别是对于有生命周期的数据,需要定期清理,这时候就一定不能和其他数据混在一起,不方便清理。

 

4.表的设计

前面提了,不是必要的数据不用入库。那必要的数据呢?又分为哪些?

首先,可以分为这样几类:

程序参数、用户信息、业务处理数据、日志类数据

上面是我根据最近的几个项目总结的,可能不同的场景还会有其他

在设计表的时候除了考虑当前需要用到的数据,在许多情况下还需要考虑到统计报表数据,这一点容易被忽视。一些大型应用或系统,通常处理的数据非常大,而且这些商用系统不是我们自己搞的小玩意,是不能出事的,程序挂掉几分钟都是大事,这时候就需要有专门的监控系统,监测运行情况,并对业务数据、用户信息等进行统计,查漏补缺。统计报表数据就非常重要了,设计表的时候或者在设计一个系统的时候,就需要提前考虑到这些。

如果条件满足,每张表最好再设计几个保留字段,以备后续的业务扩张

 

附.sql语句总结

 1 --查看表空间文件
 2 select file#, name from v$datafile;
 3 
 4 
 5 --创建表空间
 6 --表空间一般以TBS_开头命名
 7 create tablespace TBS_DSS_IPARAM
 8 datafile /u01/app/oracle/oradata/orcl/iparam.dbf
 9 size 20m
10 autoextend on
11 next 50m maxsize 2048m
12 extent management local;

 

建表规范

原文:https://www.cnblogs.com/suzi2019/p/11176138.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!