世界信息:数据库怎么分库分表?数据库瓶颈与CPU瓶颈的区别
你知道的越多,不知道的就越多,业余的像一棵小草!
(相关资料图)
你来,我们一起精进!你不来,我和你的竞争对手一起精进!
一、数据库瓶颈
不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。
1、IO瓶颈
第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。
第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。
2、CPU瓶颈
第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加CPU运算的操作 -> SQL优化,建立合适的索引,在业务Service层进行业务计算。
第二种:单表数据量太大,查询时扫描的行太多,SQL效率低,增加CPU运算的操作 -> 水平分表。
二、分库分表
1、水平分库
1、概念:以字段为依据,按照一定策略(hash、range等),将一个库中的数据拆分到多个库中。
2、结果:
每个库的结构都一样;
每个库的数据都不一样,没有交集;
所有库的并集是全量数据;
3、场景:系统绝对并发量上来了,分表难以根本上解决问题,并且还没有明显的业务归属来垂直分库。
4、分析:库多了,io和cpu的压力自然可以成倍缓解。
2、水平分表
1、概念:以字段为依据,按照一定策略(hash、range等),将一个表中的数据拆分到多个表中。
2、结果:
每个表的结构都一样;
每个表的数据都不一样,没有交集;
所有表的并集是全量数据;
3、场景:系统绝对并发量并没有上来,只是单表的数据量太多,影响了SQL效率,加重了CPU负担,以至于成为瓶颈。
4、分析:表的数据量少了,单次SQL执行效率高,自然减轻了CPU的负担。
3、垂直分库
1、概念:以表为依据,按照业务归属不同,将不同的表拆分到不同的库中。
2、结果:
每个库的结构都不一样;
每个库的数据也不一样,没有交集;
所有库的并集是全量数据;
3、场景:系统绝对并发量上来了,并且可以抽象出单独的业务模块。
4、分析:到这一步,基本上就可以服务化了。例如,随着业务的发展一些公用的配置表、字典表等越来越多,这时可以将这些表拆到单独的库中,甚至可以服务化。再有,随着业务的发展孵化出了一套业务模式,这时可以将相关的表拆到单独的库中,甚至可以服务化。
4、垂直分表
1、概念:以字段为依据,按照字段的活跃性,将表中字段拆到不同的表(主表和扩展表)中。
2、结果:
2.1、每个表的结构都不一样;
2.2、每个表的数据也不一样,一般来说,每个表的字段至少有一列交集,一般是主键,用于关联数据;
2.3、所有表的并集是全量数据;
3、场景:系统绝对并发量并没有上来,表的记录并不多,但是字段多,并且热点数据和非热点数据在一起,单行数据所需的存储空间较大。以至于数据库缓存的数据行减少,查询时会去读磁盘数据产生大量的随机读IO,产生IO瓶颈。
4、分析:可以用列表页和详情页来帮助理解。垂直分表的拆分原则是将热点数据(可能会冗余经常一起查询的数据)放在一起作为主表,非热点数据放在一起作为扩展表。这样更多的热点数据就能被缓存下来,进而减少了随机读IO。拆了之后,要想获得全部数据就需要关联两个表来取数据。
但记住,千万别用join,因为join不仅会增加CPU负担并且会讲两个表耦合在一起(必须在一个数据库实例上)。关联数据,应该在业务Service层做文章,分别获取主表和扩展表数据然后用关联字段关联得到全部数据。
三、分库分表工具
1、sharding-sphere:jar,前身是sharding-jdbc;2、TDDL:jar,Taobao Distribute Data Layer;3、Mycat:中间件。
注:工具的利弊,请自行调研,官网和社区优先。
四、分库分表步骤
根据容量(当前容量和增长量)评估分库或分表个数 -> 选key(均匀)-> 分表规则(hash或range等)-> 执行(一般双写)-> 扩容问题(尽量减少数据的移动)。
五、分库分表问题
1、非partition key的查询问题(水平分库分表,拆分策略为常用的hash法)
1、端上除了partition key只有一个非partition key作为条件查询
映射法
基因法
注:写入时,基因法生成userid,如图。关于xbit基因,例如要分8张表,23=8,故x取3,即3bit基因。根据userid查询时可直接取模路由到对应的分库或分表。根据username查询时,先通过usernamecode生成函数生成username_code再对其取模路由到对应的分库或分表。id生成常用snowflake算法。
2、端上除了partition key不止一个非partition key作为条件查询
映射法
冗余法
注:按照orderid或buyerid查询时路由到dbobuyer库中,按照sellerid查询时路由到dbo_seller库中。感觉有点本末倒置!有其他好的办法吗?改变技术栈呢?
3、后台除了partition key还有各种非partition key组合条件查询
NoSQL法
冗余法
2、非partition key跨库跨表分页查询问题(水平分库分表,拆分策略为常用的hash法)
注:用NoSQL法解决(ES等)。
3、扩容问题(水平分库分表,拆分策略为常用的hash法)
1、水平扩容库(升级从库法)
注:扩容是成倍的。
2、水平扩容表(双写迁移法)
第一步:(同步双写)应用配置双写,部署;
第二步:(同步双写)将老库中的老数据复制到新库中;
第三步:(同步双写)以老库为准校对新库中的老数据;第四步:(同步双写)应用去掉双写,部署;
注:双写是通用方案。
六、分库分表总结
1、分库分表,首先得知道瓶颈在哪里,然后才能合理地拆分(分库还是分表?水平还是垂直?分几个?)。且不可为了分库分表而拆分。
2、选key很重要,既要考虑到拆分均匀,也要考虑到非partition key的查询。
3、只要能满足需求,拆分规则越简单越好。
七、视频教程
标签:
相关推荐:
最新新闻:
- 世界信息:数据库怎么分库分表?数据库瓶颈与CPU瓶颈的区别
- 日常运维笔记之Apache的工作模式及使用方法
- 【全球播资讯】手机忘记手势密码怎么办?教你一招
- MySQL怎么下载安装?MySQL如何卸载干净?
- ldquo 职称 rdquo 用英文怎么写
- 今日讯!怎样远程控制别人的电脑?远程控制的方法流程
- 清房协租赁住房发展趋势研讨 暨金地产业园区及租赁住宅参观活动|天天热点
- 电驴连接服务器的方法有哪些?电驴连接不上服务器的解决方法介绍 全球热头条
- 今日精选:笔记本电脑计算机的配置表 笔记本电脑配置单及价格大全
- 报道:移动硬盘有文件但看不见怎么恢复文件?教你一招轻松解决
- urlmon.dll网络操作API——URL语言函数 即时焦点
- python爬虫中的session和cookie如何破解?方法步骤
- 电脑音量图标不见了怎么办?用这个方法快速找回
- 微软将以690亿美元收购动视暴雪:有望于本周获批
- win7如何设置局域网共享?win7设置局域网共享图文讲解 时讯
- win7系统怎么给C盘腾出大量空间?方法步骤
- 2023第一季度中国智能门锁TOP10出炉:小米市场占有量第一 天天百事通
- 吸毒者的照片真实照片_吸毒者的恐怖图片
- 什么是渲染?什么是烘托?国画渲染的画法
- 逼近GTX 1060!AMD Radeon 780M核显实测来了 全球速看
- 【聚看点】电脑的主流显示器的分辨率一般是多大?详情介绍
- 【干货】什么是ETF期权?到底如何交易?
- 天天简讯:VR是什么东西?虚拟现实为什么再次收到人们的关注?
- 亮点十足质价比高 华为超联接笔记本MateBook D 14开售 世界通讯
- 赋能教育数字化转型,华为终端商用携六大智慧解决方案亮相教育装备展 关注
- 海尔AWE惊喜不断这次又有哪些亮点?_世界微速讯
- 香港的麻辣教师(麻辣老师)
- 六横登高架设作业安全培训考证忙 没有登高架设作业证书别想上岗挣钱
- 焦点精选!旅行丨去过云南泼水节,上战场都不怕了!
- 抓班子带队伍方面存在问题具体整改措施整改时限_抓班子带队伍方面存在的问题
- Mysteel:18省份合计公布182个钢铁项目-环球今头条
- 米哈游重拳出击:海外《原神》泄密论坛遭侵权警告 短讯
- 恐怖悬疑游戏《爱冒险的阿曼达》上线Steam 目前好评
- 环球快资讯:中金湖北科投光谷产业园封闭式基础设施证券投资基金获通过
- 讯息:办理房产证大概需要多少钱
- 警惕!295家假冒国企名单公布
- 特殊二维码图片疯传全网:可导致微信闪退|全球热消息
- 5月1日苍南到临海自驾游什么路线最便捷(苍南开车到台州多久时间)
- 范伟黑社会电影有哪些 范伟个人资料简介_世界报道
- 博主惊呼小米13 Ultra四摄高度统一:简直就像1颗镜头拍的
- 长虹美菱(000521):该股换手率大于8%(04-26)
- 阿里旗下菜菜超市公司增资至1.11亿
- 香港嘉年华开幕点燃Web3.0之火,微美全息(WIMI.US)把握黄金起点开拓新篇章|全球快讯
- 金至尊铂金多少钱一克(2023年04月26日)参考价格 每日看点
- iPhone 15 Pro Max仍用14同款主摄,超大底要等到iPhone 16
- 这些增量资金或驰援股市!_全球短讯
- 首销正式开启,华为nova11系列X Manner联名打造时尚新玩法
- 当前速看:2023年Q1中国智能手机市场销量下跌5.4%,OPPO位列安卓第一
- 碾压张本美和!国乒15岁神童三连冠,比孙颖莎小8岁,马琳新王牌
- 海尔知识产权布局“有道”:高价值专利助力高质量发展|新消息
- 户外储能成新蓝海,主力消费市场在海外|新消费观察 焦点要闻
- 时讯:嘉曼服饰:公司2023年一季报中的1,504,550,248.68元交易性金融资产为银行理财产品及结构性存款
- 品味书香写一段话20字_品味书香一段话 最新快讯
- 在华市占率降至1.6%,韩系还有救吗?
- 【报资讯】韩国校园爱情电视剧排行榜(韩国校园爱情电视剧)
- 青藏高原生态有了保护法
- 能带上飞机 40000mAh移动电源首发899元:300W输出
- 十年努力成泡影!日本航天器登月宣告失败-当前视讯
- 国台办:台当局至今仍单方面限制大陆2400多项产品输入_天天速讯
- 填补广西半导体制造领域的空白!广西首个集成电路晶圆级封测制造项目竣工投产-今日播报
- 《守望先锋2》上线社区制作地图“爪兰蒂斯” 限时游玩_环球精选
- 雅虎日本:日本婚恋市场上宅男变得抢手-世界今日讯
- 父母遇害,15岁孤女名下房产被舅舅过户给其前妻,检察院支持起诉追回
- 当前快报:首届“春城火焰蓝杯”运动会开幕
- 环球观天下!企业管理咨询有限公司经营范围包括_企业管理咨询有限公司经营范围
- 汉川一季度财政总收入17.98亿元 实现首季“开门红”
- 浩淼科技去年扣非后利润增51%:第一大产品收入毛利率齐升 向智造转型升级更进一步
- 克山县:让“信用数据”变为“真金白银”
- 老板电器2022全年归母净利15.72亿元,2023一季度归母净利3.89亿元同比增5.72%
- ChatGPT将推出企业版订阅服务|快消息
- 国家邮政局:一季度邮政行业业务收入完成3562.1亿元,同比增长9.0%_每日看点
- 2023北京八年级体育与监考机考评分标准一览 世界资讯
- 带上这份攻略,畅游五一热门小众旅游目的地——安图
- 2023年金牛座事业运6月运程详解 忙碌反倒坏事?
- 比肩魔术师!特雷-杨前10场季后赛20+10历史第5人
- 跨越速运发布五一假期时效安排
- 蜜糖欢小说结局 蜜糖欢|环球关注
- 港股概念追踪 | “五一”假期倒计时!“开心香港”一系列活动展开 香港再迎消费热潮(附概念股)|头条
- 电影市场整体逐步复苏向好 中国电影一季度净利1.8亿元
- 1台利润是安卓机10倍!iPhone翻新机全球卖爆:系统不卡 保值好
- 天天快看点丨国能新材2022年净利1268.23万同比扭亏为盈 公司业绩增长
- 天天观天下!长源电力(000966):股价成功突破年线压力位-后市看多(涨)(04-26)
- 《闪电侠》电影新海报:迈克尔·基顿版蝙蝠侠、女超人亮相! 每日看点
- 《艾尔登法环》DLC去年4月就在开发!已经做了一年了
- 美媒:美第一共和银行股价腰斩 或变卖千亿美元资产_资讯推荐