栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

分库与分表

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

分库与分表

Preamble
  • 对RDB数据存储和访问机制的一种补充
  • 针对海量请求的优化:优化sql/索引/字段;读写分离;分库分表
  • rule of thumb: 单表行数 >500万行 或单表容量 >2GB 时,考虑分库分表
拆分方式 垂直拆分
  • 垂直分库:按业务
  • 垂直分表:按业务 / 按列

每个库/表的结构不同,但需要有一列相同用来关联;优点是逻辑清晰,数据维护简单;缺点是某个业务导致单表/库数据量大时,仍有读写压力,还需要考虑对事务的处理。

水平拆分
  • 水平分库/表:取模等方式

每个库/表的结构相同,但数据不同;优点是单表/库的数据量保持在一定水平,保证了性能及稳定性;缺点是数据的再次扩展较难。

中间件方案
  • 应用层依赖类:和应用强耦合,让应用层在基本不改变业务代码的情况下透明地实现分库分表的能力(在客户端就知道指定到那个数据库)。包括Sharding-jdbc等。
  • 中间层代理类:在应用和数据库的连接间搭起一个代理层,应用以标准的MySQL协议来连接代理层,然后代理层负责转发请求到底层的MySQL物理实例。包括Cobar,Mycat等。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号