From 826399e63a59c7dd693bb1fc98a0a7b3ef091057 Mon Sep 17 00:00:00 2001 From: Zhang Peng Date: Fri, 6 Jul 2018 17:32:21 +0800 Subject: [PATCH] :memo: Writing docs. --- docs/mysql.md | 2 -- docs/数据库系统概论.md | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/docs/mysql.md b/docs/mysql.md index 86aff8a..3f43244 100644 --- a/docs/mysql.md +++ b/docs/mysql.md @@ -490,7 +490,5 @@ MySQL 读写分离能提高性能的原因在于: - BaronScbwartz, PeterZaitsev, VadimTkacbenko, 等. 高性能 MySQL[M]. 电子工业出版社, 2013. - 姜承尧. MySQL 技术内幕: InnoDB 存储引擎 [M]. 机械工业出版社, 2011. - [20+ 条 MySQL 性能优化的最佳经验](https://www.jfox.info/20-tiao-mysql-xing-nen-you-hua-de-zui-jia-jing-yan.html) -- [服务端指南 数据存储篇 | MySQL(09) 分库与分表带来的分布式困境与应对之策](http://blog.720ui.com/2017/mysql_core_09_multi_db_table2/) - [How to create unique row ID in sharded databases?](https://stackoverflow.com/questions/788829/how-to-create-unique-row-id-in-sharded-databases) - [SQL Azure Federation – Introduction](http://geekswithblogs.net/shaunxu/archive/2012/01/07/sql-azure-federation-ndash-introduction.aspx) -- [分库分表需要考虑的问题及方案](https://www.jianshu.com/p/32b3e91aa22c) diff --git a/docs/数据库系统概论.md b/docs/数据库系统概论.md index 226bd44..1dc4037 100644 --- a/docs/数据库系统概论.md +++ b/docs/数据库系统概论.md @@ -36,6 +36,7 @@ tags: - [5.2. 垂直拆分](#52-垂直拆分) - [5.3. Sharding 策略](#53-sharding-策略) - [5.4. Sharding 存在的问题及解决方案](#54-sharding-存在的问题及解决方案) + - [5.5. 常用的分库分表中间件](#55-常用的分库分表中间件) - [6. 关系数据库设计理论](#6-关系数据库设计理论) - [6.1. 函数依赖](#61-函数依赖) - [6.2. 异常](#62-异常) @@ -527,6 +528,8 @@ delete; ## 5. 分库分表 +分库分表的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。 + ### 5.1. 水平拆分
@@ -594,6 +597,24 @@ delete; 分库数量首先和单库能处理的记录数有关,一般来说,Mysql 单库超过 5000 万条记录,Oracle 单库超过 1 亿条记录,DB 压力就很大(当然处理能力和字段数量/访问模式/记录长度有进一步关系)。 +### 5.5. 常用的分库分表中间件 + +#### 简单易用的组件: + +- [当当sharding-jdbc](https://github.com/dangdangdotcom/sharding-jdbc) +- [蘑菇街TSharding](https://github.com/baihui212/tsharding) + +#### 强悍重量级的中间件: + +- [sharding ](https://github.com/go-pg/sharding) +- [TDDL Smart Client的方式(淘宝)](https://github.com/alibaba/tb_tddl) +- [Atlas(Qihoo 360)](https://github.com/Qihoo360/Atlas) +- [alibaba.cobar(是阿里巴巴(B2B)部门开发)](https://github.com/alibaba/cobar) +- [MyCAT(基于阿里开源的Cobar产品而研发)](http://www.mycat.org.cn/) +- [Oceanus(58同城数据库中间件)](https://github.com/58code/Oceanus) +- [OneProxy(支付宝首席架构师楼方鑫开发)](http://www.cnblogs.com/youge-OneSQL/articles/4208583.html) +- [vitess(谷歌开发的数据库中间件)](https://github.com/youtube/vitess) + ## 6. 关系数据库设计理论 ### 6.1. 函数依赖 @@ -741,3 +762,4 @@ Entity-Relationship,有三个组成部分:实体、属性、联系。 ## 8. 资料 - [数据库系统原理](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/数据库系统原理.md) +- [分库分表需要考虑的问题及方案](https://www.jianshu.com/p/32b3e91aa22c)