数据库

Mysql的分库分表

2021-08-22  本文已影响0人  名字是乱打的

目前分库分表的必要性:
由于在做消息中心,消息中心的量级又比较大,目前大概有7000W用户,差不多每天200W~500W消息的样子,数据达到千万级非常快,目前用的mysql存储消息发送记录以及消息发送详情,那么单张表存储的话及时数据索引建立合理也不可避免的会影响数据的查询和写入速度。这种情况下分库分表就特别必要了。

这里要明白一个概念,分库分表并不是绑定在一起的,我们需要根据自己的切实情况进行选择;
从我个人来看,分库是为了解决高并发问题,流量平均,分表是解决大数据量问题,数据平均;

零. 来自官方的数据库分库分表的必要性

传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景.

一. 分库分表中间件的划分

分库分表中间件主要分为代理类,客户端类两种类型。

二. 有哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?

2.1 常见分库分表中间件介绍

比较常见的包括:cobar、TDDL、atlas、sharding-jdbc、mycat

mycat:基于cobar改造的,属于proxy层方案·,支持的功能非常完善,而且目前应该是非常火的而且不断流行的数据库中间件社区很活跃`。·

所以综上所述,现在其实建议考量的,就是sharding-jdbc和mycat,这两个都可以去考虑使用。

2.2 常见分库分表中间件优缺点

sharding-jdbc: client层

mycat: proxy层

通常来说,这两个方案其实都可以选用,但是我个人建议中小型公司选用sharding-jdbc,client层方案轻便,而且维护成本低,不需要额外增派人手,而且中小型公司系统复杂度会低一些,项目也没那么多;

但是中大型公司最好还是选用mycat这类proxy层方案,因为可能大公司系统和项目非常多,团队很大,人员充足,那么最好是专门弄个人来研究和维护mycat,然后大量项目直接透明使用即可。

三 .分库分表的方向

3.1 按照拆分的方向分为垂直拆分和水平拆分
3.2按数据划分方式

一般有有两种分库分表的方式

上一篇 下一篇

猜你喜欢

热点阅读