MYSQL分库分表常见问题
2023-12-29 13:19:34
什么是分库
分库:是将一个数据库分成多个数据库,但是总表数不变,部署到不同机器,这样可以分担数据库的读写压力,提高系统的吞吐能力。
什么是分表
分表:就是一个表分成多个表,但是总体的库不变,这样可以减少单个表的数据量,提高查询性能。
分库+分表
分库+分表是指库和表都切分,数量都发生变化,这种情况说明数据量已经达到一定程度,无论进行哪种单独的切分都会产生性能瓶颈。 如下图所示原数据库DB中有张user表,将表切成4份然后平分到2个数据库上。
为什么要分库分表
可以解决海量数据运维管理
可以在海量数据里高效查询
可以解决高并发下性能瓶颈
提高系统的可伸缩性和可扩展性
什么时候需要分库分表
单实例性能到达瓶颈
单库容量超过2T
单表数据超过800W
年增量千万级
分片算法/工具
案例分享一
运营商登录服务: ? ? ? ?手机号表按照省份分表(31个表),即便这样对于广东省仍然有9千万的数据量,然后再水平分片(18个分片),按照单表不超800w的原则进行划分。 ? ? ?整体分库+分表如下图:
?
案例分享二
?
分库分表后这些坑你踩过么
分布式事务、?广播sql 跨分片的join查询、?主键生成问题 、?扩容问题、? 热点库表问题 、?数据严重倾斜 、?聚合、复杂性查询、报表等问题 、?多IDC数据同步问题等等
如何解决、躲避这些问题
总结
文章来源:https://blog.csdn.net/qq_38665235/article/details/135287772
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!