大型数据库设计_第1页
大型数据库设计_第2页
大型数据库设计_第3页
大型数据库设计_第4页
大型数据库设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据生命周期管理l 统一的命名规则l 统一的书写风格 l 列出所有字段 所有涉及表字段的书写中列出所有字段,以下方式应禁止(如果表中增加字段则下列书写的语句可能会导致问题): select * from tab insert into tab values(xx,yy) 当然select count(*)除外 vUsernumber os_user_service.usernumber%type 工 select distinct table_name, column_name from user_tab_columns where column_name = USERNUMBER and t

2、able_name in (select table_name from user_tables) 特别要注意一个原则数据类型遵循数据存储最小化原则,大型数据库中一张表中记录以亿做单位是很常见事件 ,数据类型的选择对于存储的需求的影响在记录数大的情况 下会很突出。 l 独立功能模块Schema独立规划l 高频引用字典表使用视图访问 l 根据使用表上的DML情况 及业务规则确定序列的参数设置 cache大小设置,如非业务强制需要使用noorderl 实现绑定变量l 底层函数性能终极要求l 通过应用程序实现数据一致性,避免使用外键 1、在大型系统中(性能要求不高,安全要求高),使用外键;在大型系统

3、中(性能要求高,安全自己控制),不用外键;小系统随便,最好用外键。 2、用外键要适当,不能过分追求 3、不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。 如果使用了外键,注意索引外键。当同时满足以下条件时可以不用索引外键: 没有从父表删除行 没有更新父表的唯一键/主键值 没有从父表联结子表 一般的互联网应用,性能要求高于安全要求,一般实现最终一致性即可。一般的互联网应用,性能要求高于安全要求,一般实现最终一致性即可。 工 l 命名规则和数据类型选择原则 遵循设计基本原则l 根据需求分析确定表的类型并进行相应的设计一、表类型分类一、表类型分类 1、

4、日记型海量读写数据表日记型海量读写数据表 此类表特征: (1)业务上是记录明细信息的(2)从数据存储上随着随时间增长记录迅速增加 (3) 数据存储可以有明显的生命周期:数据写生命周期,数据读生命周期,数据备查生命周期 2、日记型海量只读数据表日记型海量只读数据表此类表特征: 1)业务上是记录明细信息的(2)从数据存储上随着随时间增长记录迅速增加 (3) 数据存储可以有明显的生命周期数据读生命周期,数据备查生命周期 例如coremail的日记表,基本上为此类表型表。 3、日增型海量用户信息表日增型海量用户信息表此类表特征: (1)业务上记录用户基本信息 (2)从数据存储上随着时间增长例如:用户积

5、分日统计表 4、配置信息表配置信息表 此类表又可以分为两大类: 跟用户信息相关的配置跟用户信息相关的配置此类表特征:(1)业务上记录用户跟业务间关系信息 例如:os_user_config (2) 从数据存储上数据量跟用户表接近,以我们系统而言,亦为海量数据表跟用户信息无关的配置跟用户信息无关的配置此类表特征: (1)业务上是记录配置信息或者基本信息 (2) 从数据存储上大部份情况下数据量较小 工 5、临时存储表临时存储表此类表特征: (1)存储的数据作为中间计算结果 (2)数据可以通过计算重新获取 (3) 数据迁移或者服务升级过程中临时使用表6、高并发高、高并发高DML操作表操作表 此类表特

6、征: (1)频繁被程序并发访问 (2) 查询和DML操作异常活跃7、海量无数据生命周期数据表、海量无数据生命周期数据表二、不同类型的表的一般设计二、不同类型的表的一般设计1、跟日期严格相关的表按时间范围设计成分区表2、数据量较小的高频访问配置表存储上使用keep池缓存3、海量无生命周期数据表根据访问方式设计成hash分区或者列表分区 l 根据表类型设计存储表空间及存储参数 1、大表使用独立的数据表空间和索引表空间 2、小表共用数据表空间和索引表空间 3、DML操作频繁的表使用写能力强的数据文件组合的表空间(假设存储上lun规划有区分的话)且保证每个表空间至少有两个以上数据文件 4、频繁访问的表

7、使用独占iops较高的数据文件组合的表空间(假设存储上lun规划有区分的话) 5、根据实际情况设计表的pctfree参数, initrans 参数和initial参数 l 表的索引设计 对于数据有生命周期的日志型数据表原则上所有索引设计成local索引 对于无生命周期的海量数据表不含分区键的索引设计成全局索引,含有分区键的索引设计成local索引 l 表的访问策略 1、读写分离、读写分离 实现读视图化,写原表,此策略尤其适合应用程序访问表的数据读写生命周期有差别的表 2、应用程序跟统计分离、应用程序跟统计分离 尽量避免统计访问生产库原表数据,根据需求采用不同的方式实现ODS。 1)Oracle

8、数据同步技术:mv,高级复制,stremas,物理dataguard,ODI等。 2)存储过程批量同步 3)第三方软件同步 dds,dsg,goldgate等 3、无法完全跟生产分离的统计请使用视图方式访问原表,实现视图化、无法完全跟生产分离的统计请使用视图方式访问原表,实现视图化l 根据需要不严格遵守范式,数据适度冗余消除大表间连接l 分表分区分库 对于日志型海量数据表, 在生产库中建议使用日期类型分区表并实现所有索引为local索引,对过期数据进行归档转移, 在日志库中则建议实现按月分表的形式 对于类型较少的可以实现list分区的海量数据表结合应用亦可以实现分库,此为水平分割 数据生命周期管理l 实现数据生命周期管理 这是海量日志型有生命周期的表的设计最重要的一环,也是大型数据库设计最需要实现的目标。具体请参见文档: 在一个大型数据库应用中,大并发中最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论