数据库中间件
遇到了什么问题,需要引入数据库中间件?
大量数据
大量请求
特殊业务需要,比如双库同步写入、数据同步、数据脱敏
数据库中间件是如何解决这些问题的?
数据分片
解决单个库数据量大的问题-分库
垂直分库,从业务维度划分库
水平分库,按照范围将相同业务表的数据拆分到不同库
解决单张表数据量大的问题-分表
垂直分表,从业务维度拆分表字段到一个新的表中
水平分表,按照范围将一张表的大量数据拆分为多个表
垂直分与水平分有什么区别
垂直分是按照业务来对数据进行分片
可提高访问性能
对业务数据解耦,可对不同业务数据进行分级、维护、监控、扩展
水平分则是按照数据的维度对数据分片
维度主要包含:
时间维度,年月周日
地域
IP
一定业务信息的Hash
数据分片会引出哪些新的问题
数据分布在不同的实例中,存在一致性问题
数据库事务问题
跨库join查询、分页查询、排序
主键避重
读写分离
多数据源整合
常见的数据库中间件有哪些
框架:
ShardingJDBC
代理:
ShardingProxy
MyCat
MyCat2
云原生:
ShardingSideCar
最后更新于
这有帮助吗?