垂直分区和水平分区有哪些优点?

9

我简直无法理解我们何时或在什么情况下会选择垂直分区而不是水平分区。

垂直分区和水平分区有哪些优点?

有没有使用垂直分区的网站/公司/任何人的例子,以及做出该决定的主要原因是什么?


我也会预期使用这种方法会出现不均匀的分布。对我来说,像名称哈希的第一个字符更有意义。 - Joel Coehoorn
这些内容涉及电子邮件地址,但其中有一张图表显示了用户名的长度,可能会有所帮助。不,根据用户名长度进行分片可能不太一致。 - Rex Morgan
大家再读一遍问题! - totsum
@joel 伙计们再读一遍问题! - totsum
2个回答

16

进行垂直分区的主要原因是当表格中的某些列更新频率高于其他列时。您可以将它们分离到另一个表格/分区,当您执行更新操作时,您不需要更新整个表格。例如,帖子计数器。如果它与其他用户数据在同一张表格中,每次更新计数器(且更新非常频繁)将锁定整个记录,但您需要经常读取它。在垂直分区中,更新的表将是user_counters,而用户的性能不会受到更新数量的影响。


0

我完全同意Darhazer所说的。

有两种主要的分区形式:

  1. 水平分区 - 这种分区将表行分段,以形成不同的物理基于行的数据集,可以单独(一个分区)或集体(一对多分区)地进行访问。表定义的所有列都在每组分区中找到,因此没有实际的表属性丢失。水平分区的一个例子可能是包含十年历史发票数据的表被分为十个不同的分区,其中每个分区包含一年的数据。
  2. 垂直分区 - 这种分区方案通常用于通过垂直拆分表来减少目标表的宽度,以便只有特定的列包含在特定的数据集中,每个分区包含所有行。垂直分区的一个例子可能是包含许多很宽的文本或BLOB列的表,这些列不经常被访问,被分成两个表,其中一个表包含最常引用的列,而另一个表包含很少引用的文本或BLOB数据

http://mysql.localhost.net.ar/tech-resources/articles/performance-partitioning.html复制


链接失效了,很遗憾。 - SQB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接