加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux 构建mycat

发布时间:2023-05-04 13:24:49 所属栏目:Linux 来源:
导读:对于服务端开发的同学对MysqL应该不陌生,尽管MysqL5.7之后单表可存放的数据量超过千万都不是问题,但是单表的数据量一旦上去之后,带来的一个很明显的问题就是,在应用端,接口响应将会边长;

虽然可以通过索引来
对于服务端开发的同学对MysqL应该不陌生,尽管MysqL5.7之后单表可存放的数据量超过千万都不是问题,但是单表的数据量一旦上去之后,带来的一个很明显的问题就是,在应用端,接口响应将会边长;

虽然可以通过索引来解决一部分查询性能问题,但数据量继续增长的话,单表的查询性能始终是一个绕不开的问题;

如何解决mySQL查询性能的问题是困扰很多DBA或服务端开发的现状,从源头来看,最根本的还是要减少单表的数据量过大的问题;

于是行业中就出现了“分库分表”的解方案,这里就不再过多展开了,有兴趣的同学可以查阅相关资料;

常用的分库分表的形式,主要是两种:垂直拆分和水平拆分。

分库分表策略简述
一、垂直拆分
1、垂直分库

以表为依据,根据业务将原本单库中的多个表拆分到不同库下面去;
2、垂直分库特点

每个库的表结构都不一样;
每个库的数据也不一样;
所有库的并集是全量数据;
3、垂直分表

以字段为依据,根据字段属性将一张表中的多个字段拆分到不同表中去;
4、垂直分表特点

每个表的结构都不一样;
每个表的数据也不一样,一般通过一列(主键/外键)关联;
所有表的并集是全量数据;
二、水平拆分
1、水平分库

以字段为依据,按照一定策略,将一个库的数据拆分到多个库中;
2、水平分库特点

每个库的表结构都一样;
每个库的数据都不一样;
所有库的并集是全量数据;
3、水平分表

以字段为依据,按照一定策略,将一个表的数据拆分到多个表中去;
4、水平分表特点

每个表的表结构都一样;
每个表数据都不一样;
所有表的并集是全量数据;
分库分表常用解决方案
基于AOP实现,在应用程序中对本地执行的sql进行拦截,解析、改写、路由处
理。需要自行编码配置实现,只支持java语言,性能较高,支持多种分片策略,通常只需要在配置文件做相关的配置就可以使用,上手成本较低;
MyCat,数据库分库分表中间件,不用调整代码即可实现分库分表,支持多种语言,性能方面相对shardingJDBC弱一些;
关于shardingJdbc 的用法,可以参考:shardingJdbc使用

mycat简介
Mycat是开源的、活跃的、基于Java语言编写的MysqL数据库中间件,客户端可以像连接MysqL一样来使用mycat,就像感觉不到mycat的存在;

具体来说,客户端只需要连接MyCat即可,具体底层用到几台数据库,每台数据库服务器里面存储了什么数据,都无需关心,这个交由mycat来处理,实际业务中的分库分表策略,可以根据需要在相关的配置文件配置即可;

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章