🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
数据库就是指通过某种特定的条件,按照某种维度,将存储在同一个数据库中的数据分散存放到多个数据库(主机)以达到负载效果 切分模式: * 垂直拆分/纵向拆分:垂直拆分就是按照业务维度将单库拆多库 * 水平拆分:将表中不同的数据行按照一定规律分布到不同的数据库表中(这些表保存在同一个数据库中),这样来降低单表数据量,优化查询性能。最常见的方式就是通过主键或者时间等字段进行Hash和取模后拆分 ### 数据库拆分引入的问题 * 分布式事务问题 * 跨节点join问题 * 跨节点排序分页问题 ### 分库&分区&分表 分区:主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减响应时间; 分库:降低了单点机器的负载(主要解决写入问题和物理IO性能瓶颈); 分表:提高了数据操作的效率(解决单表查询性能) ### 【参考资料】数据分库中间件 * sharding-jdbc ##当当网 * Atlas ## 360 * mycat ## 开源社区 * DBProxy ## 美团 * dbsplit ## github上有开源 * TDDL ## alibaba [https://dbaplus.cn/news-10-264-1.html](https://dbaplus.cn/news-10-264-1.html)