分库分表分片

分库

将不同的表存在不同的数据库中:是将一个业务系统的数据分布到多个数据库实例中。每个数据库实例保存一部分数据,这样可以减轻单个数据库实例的压力。

实际应用例子:假设你有一个电商平台,其中有用户数据和订单数据。用户数据可以放在一个数据库实例中,而订单数据放在另一个数据库实例中。这样,当用户数据和订单数据同时增长时,两个数据库实例可以分别扩展,提升整体系统的性能。

分表

将同一张表的数据拆分成多张表:是将一个大表按照某种规则拆分成多个小表,每个小表只保存部分数据。分表可以在单个数据库实例中实现,也可以结合分库来使用。

单实例多表:是在单个数据库实例中,将一个大表拆分成多个小表。每个小表称为一个分区(Partition),这些分区在逻辑上是一个表,在物理上是多个表

实际应用例子:在上面的电商平台例子中,假设订单数据量非常大,可以按照订单的创建时间进行分表,比如每个月的数据分成一个表:orders_202301,orders_202302,等等。这样,每次查询订单时,只需要查询相关月份的订单表,减少了单表查询的数据量,提高查询效率。

分片

多实例分布:是将数据分布到多个数据库实例中,每个实例称为一个分片(Shard)。每个分片独立运行,可以分布在不同的物理服务器上。

特点

  1. 多实例:分片在多个数据库实例中进行。
  2. 物理划分:数据被物理分布到不同的数据库实例,每个实例存储一部分数据。
  3. 水平扩展:通过增加更多的数据库实例,可以水平扩展数据库的容量和性能。

实现方式

  1. 应用层分片:在应用程序中实现分片逻辑。
  2. 中间件分片:使用如ProxySQL或MyCat等中间件来管理分片。
  3. 数据库原生分片:例如MySQL Cluster或MySQL Fabric。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇