MySQL数据表水平和垂直拆分

数据表的拆分是为了解决实际问题,不能因为拆分而拆分!实际上单表存储数据是最简单和高效的,但是不行啊!当我们服务器资源不够啦,我们要保证重点用户、重点业务啊,所以我们需要拆表。

mysql

为什么要分表?

拆表的目的有如下几个:

  • 单机资源不够
  • 保证重点业务的良好运行
  • 保证重点用户得到更好的体验

拆分的方式分两种:

  • 垂直拆分:按功能或业务将原来一个表中的内容拆分成多个表
  • 水平拆分:将同类型的数据分别存放与相同结构的多个表中

垂直拆分

垂直拆分:按功能或业务将原来一个表中的内容拆分成多个表

拆分的时候有一定的依据:

  • 相对独立的字段可以拆出来,例如文章的相关统计信息,或者是用户的基本信息和扩展信息页可以拆分出来
  • 大字段内容可以拆出来,例如文章的内容可以拆出来
  • 更新比较频繁的内容可以拆出来

水平拆分

水平拆分:将同类型的数据分别存放与相同结构的多个表中

水平拆分需要通过某种算法将数据分散在多个表中

例如订单表,可以拆分的算法有多种,例如:

1、最近一个月的订单和之前的订单,可以放到不同的表中,通过定时任务来做数据转移

2、根据用户id的尾数分散到10个不同的表中

3、前100w数据在一张表里,100w-200w在一张表里 ...

通过水平拆分来解决问题也有一定的原则和依据

1、冷热数据可以通过水平来拆分

2、快速增长的表可以通过水平来拆分

3、拆分的依据可以根据具体情况来说,可以根据某一个标志,如100w为一个表,如所在城市,或者id的某一算法来拆

相关文章

感觉本篇文章不错,对你有收获?

¥我要小额赞助,鼓励作者写出更好的教程
80 160 120

作者:

  • 出处: https://www.mi360.cn/articles/237
  • 本文版权归作者,欢迎转载,但未经作者同意必须保留 此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

评论区

最新评论

扫码关注