数据库系统设计漫谈_童家旺.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文档。上传文档
查看更多
数据库的扩展性问题 做数据库架构、系统架构与上图差别在于: 如何满足如下的要求 检索问题 Relation 并发问题 Isolation Consistency(UK) 一致性问题 Isolation 速度问题 Performance,Durability+Isolation 数据库检索问题 如何从班级的联系方式中找到XX的电话号码? 如何从公司的联系方式中找到XX的电话号码? 如何从移动公司的系统中找到XX的电话号码? 如何从移动、电信、联通的数据库找到XX的电话号码? 数据库的并发问题 同时有多个人要购买手机号? 如何保证大家购买的不是同一个手机号? 如何支持几百、几千、几万人同时购买手机号? 数据库的一致性问题 如何保证大家看到的库存有效? 如何保证读取的信息是准确的? 库存的变更如何实时的提供给每一个人看到? 数据库的性能问题? 如何快速的让1个人买到号码? 有多快? 如何快速的让10个人买到号码? 要不要排队? 一个服务员? 一个营业厅? Performance Vs Scalability 1.当只有一个人访问时,速度如何? 2.当有很多人访问时,速度如何? 大家都同样快? 如果满足1 表示Performance很好? 如何能较好的满足2 表示系统有较好的Scalability 一致性问题再探讨 新浪发的微薄需要强一致吗? ITPUB的论坛需要强一致吗? 当当的图书描述信息需要强一致吗? 12306的火车票库存信息需要强一致吗? 支付宝/财付通的账户余额需要强一致吗? 中行信用卡/招商银行卡的账户信息需要强一致吗? 数据状态机的分类 何谓状态机 简单的理解是,计算机中会发生变化的数据都是状态机,这个数据的值不同可能会带来不同的后果。 分类:按照三个维度:时间、信息含金量、变更频率 持续时间 信息含金量 变更频繁度 例子 瞬时 高 少 Shopping Card Session(分) 瞬时 低 少 Login Cookie(分) 中等时长 高 少 Ecommerce Billing(天) 中等时长 中 少 Product Catalog(年) 中等时长 高 多 Flight/Train Inventory (月) 无限时长 中 少 User Profile(年) 无限时长 高 多 Bank Account Balance(年)) Cache的基本概念 Cache的定义 Caching is a temp location where I store data in (data that I need it frequently) as the original data is expensive to be fetched, so I can retrieve it faster. 台湾的翻译为“快取”,大陆为“缓存” Cache的特征 有Backend的内容 处理的效率比走Backend要快 与Backend的内容之间可能会不一致 Cache的本质 Through Relaxing Consistency to Improve Scalability Cache的设计考虑 缓存的一致性维护问题 数据的具体读写比 商品信息?库存信息?用户信息?账户余额? Backend数据变更频率 业务对一致性的要求 使用何种缓存策略 Write Through Vs Write Back Vs Write Back with Compensate Memcached是Cache吗? It Depends 如果内容有Backend?是! 如果内容没有Backend?否! 案例 新浪微博的计数器? 淘宝、当当的记录在缓存中的购物车信息? 主题 数据库基本问题调查 关系数据库的基本背景 ACID基本概念解析 范式问题解析(Normalization) 数据库的扩展性浅析 常见数据库系统回顾 数据存储的基本需求 存储数据 读写的性能(Hash查找、B*Tree查找) 数据的可靠性(Durability)支持 如何避免单点故障带来的数据丢失(数据保护) 是否支持多维查询(基于关系的查询) 对Replication的支持如何? 支撑Scalability的复杂度 MySQL (Innodb) Oracle 传统的关系数据库 支持多维索引 Oracle的支持较好 MySQL要到5.6才比较好的支持Index内Filter 较好的支持数据的一致性 成熟的MVCC设计 成熟的Replication设计 简单查询的效率略低于Memcached B*Tree的成本 MVCC带来的额外成本 MySQL Oracle 在进行数据库扩展时 只能依赖于应用层的拆分(即:Sharding) 目前Sharding支持由TDDL实现 维护成本会相对较高

文档评论(0)

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

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档