#为什么MySQL数据量大了要分库分表#
是这样的。随着用户量的激增和时间的堆砌,存在数据库里面的数据越来越多,此时的数据库就会产生瓶颈,出现资源报警、查询慢等场景。
首先单机数据库所能承载的连接数、I/O及网络的吞吐等都是有限的,所以当并发量上来了之后,数据库就渐渐顶不住了。再则,如果单表的数据量过大,查询的性能也会下降。因为数据越多 B+ 树就越高,树越高则查询 I/O 的次数就越多,那么性能也就越差。因为上述的原因,不得已就得上分库分表了。把以前存在一个数据库实例里的数据拆分成多个数据库实例,部署在不同的服务器中,这是分库。把以前存在一张表里面的数据拆分成多张表,这是分表。一般而言:分表:是为了解决由于单张表数据量多大,而导致查询慢的问题。大致三、四千万行数据就得拆分,不过具体还是得看每一行的数据量大小,有些字段都很小的可能支持更多行数,有些字段大的可能一千万就顶不住了。
分库:是为了解决服务器资源受单机限制,顶不住高并发访问的问题,把请求分配到多台服务器上,降低服务器压力。顺着这个思路,再接着追问几个常见面试题。你们一般怎么分库的?一般分库都是按照业务划分的,比如订单库、用户库等等。有时候会针对一些特殊的库再作切分,比如一些活动相关的库都做了拆分。因为做活动的时候并发可能会比较高,怕影响现有的核心业务,所以即使有关联,也会单独做拆分。
那你觉得分库会带来什么问题呢? 首先是事务的问题。我们使用关系型数据库,有很大一点在于它保证事务完整性。而分库之后单机事务就用不上了,必须使用分布式事务来解决,而分布式事务基本的都是残缺的(我之前文章把分布式事务汇总了一波,后台搜索分布式事务就有了)。这是很重要的一点需要考虑。 连表 JOIN 问题在一个库中的时候我们还可以利用 JOIN 来连表查询,而跨库了之后就无法使用 JOIN 了。此时的解决方案就是在业务代码中进行关联,也就是先把一个表的数据查出来,然后通过得到的结果再去查另一张表,然后利用代码来关联得到最终的结果。这种方式实现起来稍微比较复杂,不过也是可以接受的。还有可以适当的冗余一些字段。比如以前的表就存储一个关联 ID,但是业务时常要求返回对应的 Name 或者其他字段。这时候就可以把这些字段冗余到当前表中,来去除需要关联的操作。那你们怎么分表的?分表其实有两种:垂直分表水平分表垂直分表,来看个图,很直观:
垂直分表就是把一些不常用的大字段剥离出去。像上面的例子:用户名是很常见的搜索结果,性别和年龄占用的空间又不大,而地址和个人简介占用的空间相对而言就较大,我们都知道一个数据页的空间是有限的,把一些无用的数据拆分出去,一页就能存放更多行的数据。内存存放更多有用的数据,就减少了磁盘的访问次数,性能就得到提升。水平分表,则是因为一张表内的数据太多了,上文也提到了数据越多 B+ 树就越高,访问的性能就差,所以进行水平拆分。
其实不管这些,浅显的理解下,在一百个数据里面找一个数据快,还是在一万个数据里面找一个数据快?即使有索引,那厚的书目录多,翻目录也慢~那分表会有什么问题?垂直分表还好,就是需要关联一下,而水平分表就有点麻烦了。 排序、count、分页问题如果一个用户的数据被拆分到多个表中,那查询结果分页就不像以前单张表那样直接就能查出来了,像 count 操作也是一样的。只能由业务代码来实现或者用中间件将各表中的数据汇总、排序、分页然后返回。像 count 操作的结果其实可以缓存下来,然后每次数据增删都更新计数。
路由问题分表的路由可以分:Hash 路由范围路由路由表Hash 路由,其实就是选择表中的某一列,然后进行 Hash 运算,将 Hash 运算得到的结果再对子表数进行取模,这样就能均匀的将数据分到不同的子表上。这跟 HashMap 选哪个桶是一样的原理。优点就是数据分布均匀。缺点就是增加子表的时候麻烦,想想 HashMap的扩容,是不是得搬迁数据?这个分表也是一样的,我们可都知道,数据迁移一件麻烦事!范围路由,其实很简单,可以是时间,也可以是地址,表示一定的范围的即可。比如本来一张 User 表,我可以分 User_HZ、User_BJ、User_SH,按照地名来划分 User。再比如 log 表,我可以将表分为 log_202103、 log_202104,把日志按照年月来划分。优点就是相对而言比较容易扩展,比如现在来个 GZ,那就加个 User_GZ。如果到了 5 月,那就建个 log_202105。缺点就是数据可能分布不均匀,例如 BJ 的用户特别多或者某个月搞了促销,日志量特别大,等等。路由表,就是专门搞个表来记录路由信息,来看个图就很清楚了。
从图中我们就能得知,UserID 为 2 的用户数据在要去 User_3 这个用户表查询。优点就是灵活咯,如果要迁移数据,直接迁移然后路由表一改就完事儿了~缺点就是得多查一次,每次查询都需要访问路由表,不过这个一般会做缓存的。 全局主键问题以前单表的时候很简单,就是主键自增,现在分表了之后就有点尴尬了。所以需要一些手段来保证全局主键唯一。还是自增,只不过自增步长设置一下。比如现在有三张表,步长设置为3,三张表 ID 初始值分别是1、2、3。 这样第一张表的 ID 增长是 1、4、7。第二张表是2、5、8。第三张表是3、6、9,这样就不会重复了。UUID,这种最简单,但是不连续的主键插入会导致严重的页分裂,性能比较差。分布式 ID,比较出名的就是 Twitter 开源的 sonwflake 雪花算法,具体就不展开了,不然就又是一篇文章了,简单点利用 redis 来递增也行。
那上面说的路由问题的 Sharding-Key 如何设计呢?我们分表是按照某个列来拆分的,那个列就是 Sharding-Key,查询的时候必须带上这个列才行。例如上面提到的 log_202103,那表明查询条件一定得带上日期,这样才能找到正确的表。所以设计上得考虑查询的条件来作为 Sharding-Key。举个常常会被问的订单表 Sharding-Key 例子。你想着查找订单的时候会通过订单号去找,所以应该利用订单 ID 来作为 Sharding-Key。但是你想想,你打开外卖软件想查找你的历史订单的时候,你是没有订单 ID 的,你只有你的 UserID,那此时只能把所有子表都通过 UserID 遍历一遍,这样效率就很低了!所以你想着那用 UserID 来作为 Sharding-Key 吧!
但是,商家呢?商家肯定关心自己今天卖了多少单,所以他也要查找订单,但他只有自己的商家 ID,所以如果要查询订单,只能把所有子表都通过商家 ID 遍历一遍,这样效率就很低了!所以 Sharding-Key 是满足不了所有查询需求的,只能曲线救国。一般做法就是冗余数据。将订单同步到另一张表中给商家使用,这个表按商家 ID 来作为 Sharding-Key,也可以将数据同步到 ES 中。一般而言这里的数据同步都是异步处理,不会影响正常流程。

#虚拟化##运维# 企业通常希望公共云为许多应用程序类型提供灵活性、快速可扩展性和可靠性,但公共云并不完美。每个主要云计算提供商都经历过内部系统或存储以及外部资源(如网络连接)的中断。业务中断对任何企业来说都是毁灭性的打击,而云计算中断也可能会影响数百个用户的业务。

所有这些都凸显了公共云计算的普遍现实:用户需要采用灾难恢复计划,就像使用内部部署数据中心一样。制定计划以及在出现云计算中断时采取的措施可以减轻或加剧对企业的影响。人们需要考虑以下六个重要步骤,以平稳度过公共云中断。

01、制定灾难复原策略
应对云计算中断的第一步是创建和实施灾难恢复(DR)计划,并在灾难发生之前很长时间就将其部署到位。尽管云计算提供商提供了大量的服务和资源,但是用户需要为每个工作负载创建、部署、配置和监视这些服务和资源。

实际的灾难恢复策略可能会根据工作负载的需求及其对企业的重要性而发生根本性的变化。日常应用程序可能非常适合常规数据备份和虚拟机快照到辅助位置,例如其他提供程序区域、另一个云计算提供程序甚至本地存储资源。

高级灾难恢复计划可以使用已部署但在另一个区域处于空闲状态的备用实例,并准备在主要实例中断时接管。甚至更全面的灾难恢复策略也可以包括分布式集群,该集群可以在多个云区域或可用性区域中运行重复的工作负载实例。例如,这种策略可以包括使用负载平衡器在多个实例之间分配流量,并在该区域发生云中断时重定向流量。

这些复制工作的极端变化是多云灾难恢复策略,其中工作负载跨两个或多个云平台(例如AWS和Microsoft Azure或Azure和谷歌云)进行冗余操作,以防止云计算中断的可能性。

02、沟通并实现云计算透明

当事情发生变化时,需要了解云中发生了什么。传统上,云计算提供商对服务中断一直不透明,但随着企业将更有价值的工作负载委托给公共云,这种情况正在改变。企业需要更多的云计算透明性,提供商也在改善与用户的通信,提供有关中断性质及其当前状态的更及时的见解。

例如,AWS公共云提供的服务运行状况仪表板显示了所有服务的当前状态,而微软Azure公共云提供了类似的“Azure状态”页面。灾难恢复决策可以取决于企业对灾难及其严重性的理解,提供商对灾难持续时间的估计——所有这些都可以随着云计算透明度的提高而改善。

但是不要停留在那里。业务和用户群取决于受影响的工作负载,因此,将中断的详细信息传达给内部用户或客户也同样重要。通知他们停机、停机对工作负载的影响以及为解决停机而采取的步骤。

03、确定灾难恢复计划的业务价值
确定需要执行什么来实施灾难恢复计划。有些计划是自动的。例如,重要的工作负载通常通过某种类型的集群来保护,即使节点(或实例)发生故障,集群也应继续运行。但是,针对次要工作负载的灾难恢复策略可能需要人为干预或分散步骤,例如恢复和重新启动快照或切换到备份实例。

如果需要人为干预,需要考虑恢复过程中涉及的工作和费用,并确定启动恢复的业务价值。询问恢复工作负载是否会比只是等待云计算提供商解决中断所需的时间更长且成本更高。来自云计算提供商的通信将会显著影响这一决定。

04、实施灾难恢复计划

在许多情况下,关键任务灾难恢复计划可能是完全自动化的,并且管理人员可能无需采取任何有意的操作。例如,即使一个节点在云计算中断期间变得不可用,跨越AWS云计算可用性区域或Azure云区域的集群也可能继续起作用。

但是,不太重要的工作负载可能需要采取有计划的行动。采用准备好的脚本、模板或其他资源,以协调适当的灾难恢复响应。当企业决定启动需要人为干预的灾难恢复计划时,管理员必须立即采取行动。这可能包括在云计算中断期间从快照重新启动或将流量重定向到备用实例。

灾难恢复计划需要定期测试。执行测试演练,以确保适当的过程和资源来推动工作负载恢复。测试还验证相关资源的配置,例如IP地址以及相关的驱动程序和相关性。如果恢复在常规测试中正常运行,则很可能在实际灾难恢复情况下正常运行。

05、监控灾难复原策略
无论实施灾难恢复策略所涉及的工作量或自动化程度如何,验证已恢复的工作负载是否正常运行仍然很重要。管理人员应将以灾难恢复状态运行的工作负载的性能与在正常条件下运行的相同工作负载的性能进行比较。

应用程序监视工具(例如Amazon CloudWatch和Google Stackdriver)着眼于工作负载运行状况。这些工具还收集日志、指标和事件,以中继有关已恢复工作负载的操作数据。此外,他们将在整个云计算中断期间继续监视工作负载的性能和可用性。

06、云计算中断的事后评估
云计算中断对企业来说可能会很痛苦,但不会一直持续下去。当云计算提供商解决其中断并恢复正常的工作负载操作时,组织需要对事件进行事后评估,并评估其灾难恢复响应。

企业还要考虑灾难恢复计划的效果如何,并根据需要调整计划。这可能包括更改分配给应用程序的灾难恢复保护级别,微调用于实施灾难恢复程序的过程或其他可能减轻未来云计算中断影响的更改。

明辰智航推出的云安虚拟化业务性能监测管理解决方案,能够做到应用业务智能关联,故障极速定位。
云安能够将关键业务自动关联,一旦出现异常,迅速定位核心问题。它的特点是:
1. 云安列出应用/基础架构的关联图,提供基础架构与应用程序间完整的对应关系。通过端到端关联图和每个基础架构组件的特定状况,确定服务组中任何一台虚拟主机资源不足的问题;
2. 将应用程序到基础架构进行关联,减少IT人员分析故障原因的时间;
3. 深度数据包检测(DPI)自动辨识3000多种应用程序,监控并分析应用程序性能;
4. 云安可洞察多层应用程序关联并自动生成应用拓扑结构,以降低平均修复时间,生成完整应用拓扑图,协助制定迁移计划和灾难复原策略。

【用友网络】收购柚子移动会议纪要

公司介绍:
公司出资1.5亿元,收购柚子移动。柚子移动是一家拥有成熟开发者生态的低代码平台公司,迄今已经聚合了众多国内外第三方主流PaaS和SaaS云服务商的API,累计已有100万注册开发者广泛使用,拥有公有模块超过1,300个 、私有模块超过20,000个、公有API超过20,000个,可供开发者一键调用,进行各种类型的应用开发,其面向有数字化转型以及业务创新需求的企业,通过自研的跨平台开发技术与低代码效率工具,持续加速IT生产力的变革。
柚子移动已经服务了海尔、通用汽车、中移动等企业。本次交易完成后,用友将成为全资股东,实现移动端低代码能力和企业级应用后端低代码能力融合。共同满足企业需求。
Q&A:
Q1:柚子移动的盈利模式?
聚焦在移动端低代码开发平台,在公有云、专有云等有很多成熟模块,覆盖移动端应用场景。同时生态合作伙伴是非常多的。B端和C端累计超过150万个。会将其能力集成到用友自身的YonBuilder 平台中。结合用友的客户和产品应用,对用友的生态是个补充。
2B:B端客户需求进行软件定制开发,按照交付验收进度确认。这种模式是柚子移动主要模式。
2D:面向开发者,可以免费用基础功能,但是高级模块需要付费,这个模式是标准的公有云模式,是增速最快的模式。
2E:客户私有云部署的低代码开发平台。
市场空间:2021年全球低代码开发技术市场总额138亿美元,大多数开发者都已经把低代码开发纳入使用工具。2021年公司测算,国内低代码行业收入超过100亿,2025年会超过200亿元。
Q2:柚子移动优势?
企业创新对个性化要求比较多,通过低代码帮助企业业务人员能够快速构建应用。通过调研,柚子移动主打移动APP,包括交叉编译、快速API等。除此之外,在各个领域也沉淀了很多标准模型。在移动领域柚子移动是非常专业领先的。
Q3:如何和用友平台整合?
把柚子移动生态能力融入用友yonbuild中。公司对企业实际应用做了很多沉淀。包括业务处理,业务中台都可以在低代码中应用。用友的低代码开发平台集中在企业应用层面,同时把API cloud融入,能够将柚子移动的生态伙伴转移至现有用友客户。
Q4:公司在L1层面大客户的突破?
目前客户对这个产品的应用效果还是有很大期待。公司在一汽已经开展二期。另外航天科技要做人力云服务,是大几千万项目。中建五局、恒大、美的等也在上线。这些客户的需求在于1.国产化替代。2.云原生、微服务的特点构成了应用的动力。传统ERP的全替换是比较困难的。以华为为例,YonBIP可以逐步替换传统ERP。
Q5:发布的Yonbip情况?
公有云和专有云同时发布,增加了很多特性,领域增加了税控(融入新的AI能力比如智能报销)。发布了新一代的合并报表,对于大企业,甚至几百家企业的管理很有优势。多公司企业合并的规则也可以通过python直接写。同时制造领域,增加了委外业务管理。下半年会在多云方面进行加强,在海外部署节点。新加坡、东南亚一代对公司需求非常旺盛。公司和华为也是战略合作,用华为的海外节点。
发布共享平台,把共享平台作为支撑财务、人力等快速共享平台。项目管理也进行发布,公司成都的创新中心也已经成立。
Q6:YonBIP的新价值?
不仅满足内部管理。现在更加关注整体产业链、上下游甚至消费者会员的联系。让企业实时了解上下游等情况,及时进行调整。采购云为例,原来供应商是线下比价,现在都是线上,进行询比价、到货入库等。到货之后和公司内部ERP实现连接。
鞍钢、中兴通讯二期、厦门航空、元气森林等都是公司客户。这个产品对上下游拉动是很有效果。同时营销端,也做了很多客户,比如统一、连接了全国十万级的经销商。公司在后端完成了营销费用管理,精准投放等。飞鹤:营销活动和统一很类似,营销费用、活动等都是通过公司营销云管理。
产业链:云南苗疆三七,通过YONBIP产业互联网能力,构建了其产业互联网,从农户找地、种植、加工等过程都可以在产业互联网功能上实现。
Q7:后续并购方向?
产业并购是公司落实生态的重要举措。公司积极借鉴海外云服务厂商的经验,围绕生态系统建设和能力提升两大主线,财务和供应链、HR是重点方向。未来还会有相应配套的案例落地。#股票##价值投资日志[超话]#


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 记者先联系了滨州市交通运输局,相关工作人员告诉记者,黄河堤坝应该是属于滨州黄河河务局的管理范围内。在座谈交流环节,市地方金融监管局、人行滨州市中支、滨州银保监分
  • 令人感叹 人生总是能给我整出点新花样呢不过今天还是有件小事让我很开心的几个同学察觉到我不对劲的状态一直耐心的等我慢腾腾的吃完饭一举一动都很暖心 真好啊 是为数不
  • 有此同感的小V也感到疑惑和委屈:为了不影响妻子照顾孩子,也为家庭收入,自己尽量忍让和克制,心如止水,为这个家为孩子奋力打拼,如今钱没少挣,老婆还变得这样乏味,无
  • 【读书六】收集了一些超级温柔的句子 #美图##读书##读书笔记##情感# 1.请代我向可爱的、温暖的太阳问好,向宁静的大海问好。 —— 契诃夫 2.一
  • 既然是服务企业,那你不仅要想企业之所想,急企业之所急,还要有‘想先一步、领先一步’的眼界,比企业思考得更全面,这样的服务对于企业来说才是精准到位的。当清控创新基
  • 最终我真的回归于自己的生活了虽然“将你归还于人海”挺非主流的哈哈哈没有突然的悲伤突然的开心一切都是平平淡淡上不完的课令人头秃的翻译和考试会和朋友偶尔喝点小酒烟还
  • #浪浪钉[超话]#DAY2初印象就是老温好好看啊,阿絮对不起我错了[跪了]第一集虽然觉得你好看但我真的没get到你的美,然后就是感觉构图很美,别的就没什么了[允
  • 价格:约8500元/㎡全部户型:三居室 别墅楼盘概况:隆基泰和紫金府总占地约95亩,总建面约12万㎡,容积率1.5,8栋小高层,22栋洋房(上下叠),项目采用A
  • 因为当年甄子丹也翻拍过电影版的《精武门》我那时的评论是认为没必要,因为电视剧版《精武门》已经很经典,甄子丹再次翻拍等于是挑战自己。而经过TVB编剧改变后的电视剧
  • 确定性会给人带来虚假的安全感,但是如果我们一旦放弃拥抱不确定性的,只选择在确定性的范围内做事情,就丧失了成长进化的机会,就成了人生中最大的风险。甄选全国30强参
  • “小七快办”服务模式是指政府对招商引资企业划片分类,聚力聚焦楼宇经济和总部经济,摸清底数,盘活存量,重点瞄准投资强度大、带动效应好的招商企业落地,切实解决招商企
  • 【重点:日语考试中涉及对象方面的语法合集】1.~にかけては(にかけても)N2关于~方面(也);在~上(也);论~(也)接续[体言]+にかけては(或:~にかけても
  • 创作的工具是procreate和artset,然后我粗略和舍友们涂涂画画了几张废片也投了大屏看,舍友直接发现新大陆哈哈哈哈哈!最后俺们看了宫崎骏的电影,颜色画面
  • 如果我们的认知系统判断这件事情对我们不利,我们就会产生负面情绪,对于同样的一件事情,比如我和前女友复合了,前女友的现男友会产生悲伤和愤怒的情绪,而现女友的前男友
  • 这‌款 Naked Honey一共​有 12 种颜‌色,以金‌属系​蜜糖​色‎为‎主,也‌有‎着不​同深浅​的‌啡色‌,很容​易‎就可‌以配‎搭​出亮‌丽‌的眼
  • 父亲说走就走,干净利落,往生后还演了一场幽默
  • 告诉自己,管他呢,过就过了 但还会委屈难过的想掉眼泪不管了,眼皮已经撑不住了,睡觉 其他的,拜拜,再也不见没有人是生来就无情的~都是经历并看到了太多自己不想看到
  • [污]张小斐真的是运气不好···之前微博之夜还没出明···主办方连座位都未给她准备,她孤零零被晾在一边,这下火了,还出了这等岔子,也是哭笑不得了。[汗]张小斐真
  • #南宁[地点]# (来源:南宁新闻网)#南宁新闻# 【#南宁# 沙井收费站到沙井南站立交段完成全线沥青铺筑 进出城道路颜值大提升[赞啊]】记者从广西路桥工程集团
  • 昨日周二,可到这里观赏桃花的人流仍川流不息,有陕西本地的,有河南的,有湖北的...。红男绿女,老少爷们,成群结队的在桃花园里徜徉游玩,拍照留念,让这座曾经的野山