大型数据库设计剖析.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型数据库设计剖析

杜威华 2010-11-25 大型数据库设计 大纲 设计基本原则 表的设计及规划 数据生命周期管理 多线程设计中的死锁问题 垂直分割与水平分割 设计基本原则 统一的命名规则 大型数据库一般对象比较多,从对象命名即可区别功能模块,采用统一的命名规则有利于设计,维护,查询 统一的书写风格 sql语句,plsql代码中大写小统一,缩进统一 列出所有字段 所有涉及表字段的书写中列出所有字段,以下方式应禁止(如果表中增加字段则下列书写的语句可能会导致问题): select * from tab insert into tab values(xx,yy) 当然select count(*)除外 存储过程,函数,包中引用表中字段的变量,参数类型定义使用表字段类型定义 否则一旦数据类型变动,较常出问题的类似字符类型增加长度,则需要找出所有引用了变动表上的变动了数据类型的字段的所有相关对象并进行修改。 定义方式举例: vUsernumber os_user_service.usernumber%type 工 设计基本原则 相同意义字段在所有表中统一命名,使用相同数据类型 不遵循可能带来的问题: a、索引失效 b、计算列精度失真 c、维护困难 其中c有可能是带来最大的问题。以139邮箱个邮为例,手机号码是在多表中使用的字段,由于业务原因需要扩展字段长度,如果各个表中字段命名不统一则这份工作将变得相当困难。如果字段命名统一,则很简单的通过下面的查询就可以获取用户下相关的所有表进行修改了。例如在oss01用户下找出所有含有usernumber字段的表: select distinct table_name, column_name from user_tab_columns where column_name = USERNUMBER and table_name in (select table_name from user_tables) 数据类型选择遵循最小化存储及按实际选择 1、优先使用数据类型,日期类型,根据需求一定要使用字符类型的则非特殊需求情况下使用varchar2类型 2、海量数据表中字段数据类型遵循存储最小化原则,最可能存储null值的字段放在最后 3、数据类型选择遵循按实际选择的原则,例如日期类型请尽量采用日期类型存储,而不要使用字符类型代替存储 特别要注意一个原则数据类型遵循数据存储最小化原则,大型数据库中一张表中记录以亿做单位是很常见事件 ,数据类型的选择对于存储的需求的影响在记录数大的情况 下会很突出。 设计基本原则 独立功能模块Schema独立规划 对于功能模块完全独立且以后可能分离的提前规划使用不同的schema,schema间访问对象通过应用程序接口访问,禁止直接通过数据库对象引用方式。这样规划可以实现当条件具备时模块独立出来代价最小甚至透明。 例如139邮箱早期数据库全部集中于同一个schema下,带来后期进行功能模块分割时的大量不必要的工作。而当前设计则注重了schema的规划,例如群邮件,动态分区,邮件代理等新加独立功能,皆使用独立schema规划,以后如果这些模块发展良好,则可以很容易的实现垂直分割。另外独立功能模块使用独立schema还有利于定位问题。 高频引用字典表使用视图访问 避免修改字典表结构或者数据类型精度导致大量对象失效从而引发故障。 案例:号段表增加字段引发的血案 根据使用表上的DML情况 及业务规则确定序列的参数设置 cache大小设置,如非业务强制需要使用noorder 实现绑定变量 底层函数性能终极要求 通过应用程序实现数据一致性,避免使用外键 1、在大型系统中(性能要求不高,安全要求高),使用外键;在大型系统中(性能要求高,安全自己控制),不用外键;小系统随便,最好用外键。 2、用外键要适当,不能过分追求 3、不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后个个应用通过这个层来访问数据库。 ? 如果使用了外键,注意索引外键。当同时满足以下条件时可以不用索引外键: 没有从父表删除行 没有更新父表的唯一键/主键值 没有从父表联结子表 一般

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档