当前位置: 首页 > news >正文

软件下载网站 知乎粤嵌培训机构官网

软件下载网站 知乎,粤嵌培训机构官网,页面设计要怎么做,商品展示页面设计模板来自Citus的Ozgun Erdogan分享了进行数据库分片的三个原则#xff0c;并强调应用类型是决定数据库分片最主要的因素。其中B2B类型的应用最容易进行数据库分片。 在数据库很小的时候#xff0c;可以很容易地通过添加硬件来扩展数据库。但随着数据表数量的不断增长#xff0c…来自Citus的Ozgun Erdogan分享了进行数据库分片的三个原则并强调应用类型是决定数据库分片最主要的因素。其中B2B类型的应用最容易进行数据库分片。 在数据库很小的时候可以很容易地通过添加硬件来扩展数据库。但随着数据表数量的不断增长我们需要寻找其他的方式来伸缩数据库。 分片是伸缩数据库最好的方式之一。通过分片将数据库拆分成更小的单元可以线性地扩展数据库的CPU、内存和磁盘资源。不过在分片这个问题上也存在一些争议网络上充斥着各种有关分片的不同观点如“essential to scaling your database infrastructure”和“why you never want to shard”。那么问题来了我们应该采纳哪一种观点而一般来说答案通常会是“它取决于”。 分片的原理很简单就是通过一个键或者说列来均匀地分布数据。不过理论虽简单在真正遇到要对数据库进行分片时很可能会陷入一团手忙脚乱之中。 在Citus我们曾经帮助数百个团队进行数据库分片也从中总结了一些关键的分片模式。 在这篇文章里我们会先探讨一些决定分片成败的关键属性然后从底层细节分析这些属性之间的不同点。在进行大型数据库分片时应用程序的类型将成为最主要的影响因素。 成功分片取决于三个关键属性 我们发现有三个关键属性会影响到成功的分片。下图通过三个方向轴展示了这三个属性并在每个轴上面放置了一些知名的公司作为例子。 X-轴表示负载类型从左侧的事务开始延伸到右侧的数据仓库。在进行数据库伸缩时这一维度最具有识别度。 Z-轴表示另一个非常重要的属性也就是应用程序当前所处的生命周期。此时你的数据库里有多少数据表你的应用程序已经运行了多长时间一个运行了几个月的数据库要比运行了数年的数据库更容易进行分片。 在Citus我们发现大部分用户都有自己的应用程序。应用程序越是成熟Y-轴就显得越为重要。不过这个维度不如其他两个维度那么具有识别度。事实上很多讨论分片的文章之所以会得出互相矛盾的结论是因为它们只是基于单一的应用类型。 分片中最重要的属性应用类型B2B或B2C Y-轴展示了在对成熟数据库进行分片时最为重要的属性应用程序的类型。在这条轴上B2B应用处于最上端它们的数据模型更容易进行分片。B2C应用处于轴的底部比如Amazon和Facebook它们的分片需要做更多的工作。接下来我们挑选了三家知名的公司来比对它们之间的不同点。 B2B类型Salesforce CRM系统是B2B应用最为典型的例子。构建CRM系统的目的是为了要给其他客户提供服务的我们假设GE Aviation是你的一个客户他们正在使用Salesforce。 GE Aviation有如下的一些实体。 客户customer公司的顾客。用户user用户可以登录GE公司的仪表盘。负责人leadGE与这些负责人商谈业务。联系人contactGE与这些联系人有了业务往来并知道他们的联系方式。账号account业务代表和拥有联系人的人。机会opportunity与账号和联系人相关的销售事件。 如果把这些实体之间的复杂关系映射到数据库里看起来是这样的 整个图咋一看确实很复杂不过如果你多花一点时间看仔细一点你会发现大多数表都是源自customer表。通过往每个表里添加customer_id列可以把表间关系转换成如下形式 通过这种简单的转换就可以通过customer_id这个键进行数据库分片。这个键可以让数据均匀地分布而大部分查询都需要带上这个键。另外你还可以根据customer_id把相关表聚集在同一个位置这样就可以继续使用关系型数据库的一些关键特性比如事务、表连接和外键。 换句话说如果你的应用类型是B2B的那么你的数据就具备了分片的天然特性。 B2C类型Amazon Amazon是B2C应用最为典型的例子。在构建像Amazon这样的网站时有许多东西需要考虑。首先用户来到你的网站浏览你的商品比如书或电子产品。假设用户在浏览《Harry Potter 7》他们也可以看到这个产品的分类信息比如书本的作者、价格、封面和其他图片。 用户在登录网站之后开始访问用户相关的数据。用户需要得到认证然后获得给产品添加评论的权限或者把产品添加到购物车里。在某个时候用户决定要购买购物车里的产品于是就下单。订单经过处理之后开始进入物流运送流程。 你会发现现在的关系图与Salesforce的关系图有一个很大的不同点。现在的关系图中不止一个中心点而是三个分类catalog、用户user和订单order。 要对这种B2C类型的数据进行分片可以考虑将它们重构成微服务。例如与产品目录相关的服务提供目录服务用户相关的服务提供认证和购物车服务。服务之间的API定义了底层数据访问的边界。 数据经过拆分之后就可以进行分片。事实上Amazon在迁移到面向服务架构时就使用了类似的方式进行数据分片。 这种分片方式与B2B应用的分片在好处和成本比率上有很大的差别。从好处方面来看你可以依赖数据库从不同的数据库连接数据或者为数据集提供事务和约束。从成本方面来看现在要进行分片的不止是一个数据集而是多个。 B2C2C类型Instacart 在B2B和B2C之间还有另外一种类型的网站比如Postmates、Instacart或Lyft。[Instacart][12]的主营业务是将本地商店的货物运送给用户。从某方面来看Instacart与Amazon有点类似。Instacart的数据模型具有三个维度提供货物的本地商店、订购商品的用户和运送货物的司机。所以很难在这当中挑出一个键进行分片。 如果你的应用属于B2C2C类型可能需要采取不同的策略。你会发现大部分数据表会共享一个维度地理位置信息。在这种情况下你可能会选择城市或地理位置作为分片的键。 一般来说B2B2C应用或B2C2C应用的分片处于图谱的中间。B2B2C分片的好处和成本之间的比率要高于B2C应用但低于B2B应用。 结论 网络上存在很多有关分片的观点。我们发现它们大部分都是基于单一的应用类型。事实上应用类型比其他因素更能影响到分片。B2B类型的应用最容易进行分片。 原文地址http://www.infoq.com/cn/news/2017/08/fragmentation-principle-relation .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.yutouwan.com/news/149253/

相关文章:

  • 滁州 来安县建设局网站网络服务公司
  • 微网站与微信网站网站建设项目进展情况汇报
  • 免费建站建设网站国外采购平台有哪些
  • 企业网站seo手机兰州网站建设cheng
  • 做外链网站装修公司走心文案
  • 本地化网站建设邹平建设局网站
  • 怎么样查看网站开发语言无锡高端网站建设公司哪家好
  • 织梦茶叶网站模板最火网页游戏
  • 辽阳建网站网络项目怎么推广
  • 平价网站平价网站建设建设打鱼网站建设
  • 设计师网站prinest微信公众号可以做几个微网站吗
  • 网站后缀orgwordpress回复查看插件
  • 江苏省建设厅副厅长网站网站建设怎么选择MySQL数据库大小
  • 个人养老金制度最新消息无锡做网站优化多少钱
  • 外链网站是什么wordpress顶图滑动
  • 广州网站营销优化开发WordPress静态主题
  • 网站开发那个好wordpress杂志新闻主题
  • 深圳市西特塔网站建设工作室网站接入商查询
  • 河南网站建设公司哪家好下了网站建设
  • 医院网站建设价值和意义网页游戏开发技术有哪些
  • 网站关键词中间用家在深圳宝安
  • 免费做的网站怎么设置域名种养殖 不得涉及
  • 寮步网站建设高性能南京发布最新通告
  • 餐馆网站模板网站开发需要什么费用
  • 模仿京东商城网站开发视频centos下xampp装载wordpress
  • 个人签名设计网站免费代理网址
  • 什么网站可以接效果图做wordpress 视频幻灯片
  • 做网站那家公司好手机网站建设wap
  • 前端做网站框架网站 开发 工具
  • 化工网站建设网站 劣势