水平分表与垂直分表和分区

1.如何进行水平分表
一般可以有范围法和hash法来进行水平分表。
假设现在有30万行数据,需要对它们进行水平分表:
范围法很好理解,可以让第1-100000行数据存放在表1,第100001-200000行数据存放在表2,第200001-300000行数据存放在表3,就完成了水平分表。

2. 垂直分表

垂直分表就是把一张表按列分为多张表,多张表通过主键进行关联,从而组成完整的数据。
分表之后,每张表的结构都不相同。

 垂直分表并不会把列平分到2个表中,而是会将一些重要的字段单独剥离成小表,把剩余的不太重要的字段放在大表中。
比如,把查询、排序时需要的字段,高频访问的小字段放在小表
而把低频访问字段以及一些大字段放在大表中
 

3.什么是分区
所谓分区,就是将一个表分成多个区块进行操作和保存,从而降低每次操作的数据,提高性能。而对于应用来说则是透明的。从逻辑上看只有一张表,但在物理上这个表可能由多个物理分区组成。每个分区都是独立的对象,可以独立处理。 注:还是那张表,只是变成小块存储,sql语句没变

分区能做什么?
1.可以逻辑数据分割,分割数据能够有多个不同的物理文件路径。
2.可以存储更多的数据,突破系统单个文件最大限制。
3.提升性能,提高每个区的读写速度,提高分区范围查询的速度。
4.可以通过删除相关分区来快速删除数据。
5.通过跨多个磁盘来分散数据查询,从而提高磁盘I/O的性能
6.涉及到例如SUM()、COUNT()这样聚合函数的查询,可以很容易的进行并行处理。
7.可以备份和恢复独立的分区,这对大数据量很有好区

posted @ 2022-06-01 10:15  快乐的在一起  阅读(461)  评论(0编辑  收藏  举报