From a0d71f6d23e127b794c8e29e255108dcea4e706e Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sat, 26 May 2018 11:38:37 +0800 Subject: [PATCH] auto commit --- notes/MySQL.md | 52 +++++++++++------- pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg | Bin 0 -> 24576 bytes pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg | Bin 0 -> 34816 bytes 3 files changed, 31 insertions(+), 21 deletions(-) create mode 100644 pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg create mode 100644 pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg diff --git a/notes/MySQL.md b/notes/MySQL.md index 5edae271..fe9ba7da 100644 --- a/notes/MySQL.md +++ b/notes/MySQL.md @@ -18,10 +18,10 @@ * [优化数据访问](#优化数据访问) * [重构查询方式](#重构查询方式) * [五、切分](#五切分) - * [垂直切分](#垂直切分) * [水平切分](#水平切分) - * [切分的选择](#切分的选择) - * [存在的问题](#存在的问题) + * [垂直切分](#垂直切分) + * [Sharding 策略](#sharding-策略) + * [Sharding 存在的问题](#sharding-存在的问题) * [参考资料](#参考资料) @@ -380,43 +380,53 @@ SELECT * FROM post WHERE post.id IN (123,456,567,9098,8904); # 五、切分 +## 水平切分 -随着时间和业务的发展,数据库中的表会越来越多,并且表中的数据量也会越来越大,那么读写操作的开销也会随着增大。 +

+ +水平切分就是就是常见的 Sharding,它是将同一个表中的记录拆分到多个结构相同的表中。 + +当一个表的数据不断增多时,Sharding 是必然的选择,它可以将数据分布到集群的不同节点上,从而缓存单个数据库的压力。 ## 垂直切分 -将表按功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立商品数据库 payDB、用户数据库 userDB 等,分别用来存储项目与商品有关的表和与用户有关的表。 +

-## 水平切分 +垂直切分是将一张表按列切分成多个表,通常是按照列的关系密集程度进行切分。也可以利用垂直切分将经常被使用的列和不经常被使用的列切分到不同的表中。 -把表中的数据按照某种规则存储到多个结构相同的表中,例如按 id 的散列值、性别等进行划分。 +也可以在数据库的层面使用垂直切分,它按数据库中表的密集程度部署到不同的库中,例如将原来的电商数据库垂直切分成商品数据库 payDB、用户数据库 userBD 等。 -## 切分的选择 +## Sharding 策略 -如果数据库中的表太多,并且项目各项业务逻辑清晰,那么垂直切分是首选。 +- 哈希取模:hash(key) % NUM_DB +- 范围:可以是 ID 范围也可以是时间范围 +- 映射表:使用单独的一个数据库来存储映射关系 -如果数据库的表不多,但是单表的数据量很大,应该选择水平切分。 - -## 存在的问题 +## Sharding 存在的问题 ### 1. 事务问题 -在执行分库分表之后,由于数据存储到了不同的库上,数据库事务管理出现了困难。如果依赖数据库本身的分布式事务管理功能去执行事务,将付出高昂的性能代价;如果由应用程序去协助控制,形成程序逻辑上的事务,又会造成编程方面的负担。 +使用分布式事务。 -### 2. 跨库跨表连接问题 +### 2. JOIN -在执行了分库分表之后,难以避免会将原本逻辑关联性很强的数据划分到不同的表、不同的库上。这时,表的连接操作将受到限制,我们无法连接位于不同分库的表,也无法连接分表粒度不同的表,导致原本只需要一次查询就能够完成的业务需要进行多次才能完成。 +将原来的 JOIN 查询分解成多个单表查询,然后在用户程序中进行 JOIN。 -### 3. 额外的数据管理负担和数据运算压力 +### 3. ID 唯一性 -最显而易见的就是数据的定位问题和数据的增删改查的重复执行问题,这些都可以通过应用程序解决,但必然引起额外的逻辑运算。 +- 使用全局唯一 ID:GUID。 +- 为每个分片指定一个 ID 范围。 +- 分布式 ID 生成器 (如 Twitter 的 Snowflake 算法)。 + +更多内容请参考: + +- [How Sharding Works](https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6) +- [大众点评订单系统分库分表实践](https://tech.meituan.com/dianping_order_db_sharding.html) # 参考资料 - BaronScbwartz, PeterZaitsev, VadimTkacbenko, 等. 高性能 MySQL[M]. 电子工业出版社, 2013. -- [How Sharding Works](https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6) -- [20+ 条 MySQL 性能优化的最佳经验 ](https://www.jfox.info/20-tiao-mysql-xing-nen-you-hua-de-zui-jia-jing-yan.html) -- [数据库为什么分库分表?mysql的分库分表方案](https://www.i3geek.com/archives/1108) -- [How Sharding Works](https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6) +- [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/ "服务端指南 数据存储篇 | MySQL(09) 分库与分表带来的分布式困境与应对之策") - [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 "Title of this entry.") diff --git a/pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg b/pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6471621610e63c095cd5e01cf9b1bbc0a504b0c GIT binary patch literal 24576 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 literal 0 HcmV?d00001 diff --git a/pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg b/pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0968e1bc2dd7c64c736cc057c421e3ca3ea613f3 GIT binary patch literal 34816 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