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来处理,实际业务中的分库分表策略,可以根据需要在相关的配置文件配置即可; (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐