mysql数据库中间件_Mysql 数据库中间件

mysql数据库中间件_Mysql 数据库中间件读写分离 简单的说是把对数据库读和写的操作分开对应不同的数据库服务器 这样能有效地减轻数据库压力 也能减轻 io 压力 主数据库提供写操作 从数据库提供读操作 其实在很多系统中 主要是读的操作 当主数据库进行写操作时 数据要同步到从的数据库 这样才能有效保证数据库完整性 分库分表 水平分区 分表垂直分区 分库水平分表也称为横向分表 比较容易理解 就是将表中不同的数据行按照一定规律分布到不同的数据库表中

读写分离:简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。

a99e9148ca86a1d9208db5bb7d41f095.png

分库分表:

水平分区:分表

垂直分区:分库

水平分表也称为横向分表,比较容易理解,就是将表中不同的数据行按照一定规律分布到不同的数据库表中(这些表保存在同一个数据库中),这样来降低单表数据量,优化查询性能。最常见的方式就是通过主键或者时间等字段进行Hash和取模后拆分。如下图所示:

a60009d19a5de6fe43a36464c9518d47.png

874e54adf04f58f326c7947d3ee8fee3.png

垂直分库在“微服务”盛行的今天已经非常普及了。基本的思路就是按照业务模块来划分出不同的数据库,而不是像早期一样将所有的数据表都放到同一个数据库中。如下图:

65ff484b2e97c77f9e09a1fc2164bad5.png

oneProxy分库分表总结:

33956881906e5514e76eacec483c90eb.png

中间件或架构层中一部分是为了解决应用之间的通信及服务治理,另一部份是为了解决数据的分布问题。相当于是将前面例子中讲的分区表里的每一个分区分别移到一台不同的硬件服务器上,而让应用的开发基本感知不到或者能少做调整就能适应这种扩展,原理非常类似于分区表,但称之为分库分表。

OneProxy将分区表的概念从数据库层抽象到SQL转发器层,然后对通信协议进行分析,可根据SQL里的表名及传入参数进行对上层应用透明的智能路由,从而达到虚拟分区表的效果,也就实现了对应用透明的分库分表的功能。

在OneProxy里同样支持按范围(Range)、按值(List)、按哈希算法(Hash)进行虚拟分库分表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210756.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:58
下一篇 2026年3月18日 下午11:58


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号