mysql垂直分表和水平分表和分表的跨表查询


分表原则:避免跨表操作,让业务的操作尽可能在一个表中完成,如果要跨表,只能说明分法不合理,如果真的有些业务场景要跨表,可以做副本冗余。

垂直分表:

一般就是将主键+常用字段列 放在一张表,主键+不常用列 放在另外一张表。

根绝自己业务需求,区分常用字段和不常用字段来分表。尽量避免join和union查询,如果这样的操作很多,说明分法不合理。

水平分表:

常见的几种水平分表法:

  • 按时间分:新闻类,朋友圈动态,微博最新动态等关注实时的,可以按月份划分,一个月一张表。
  • 按区间分:每个表的自增id,按id的区间来划分,如1~1000一张表,1001~2000一张表。涉及到删除数据,一般删除数据做状态修改,只是物理删除。
  • 按hash值分:表的唯一值如用户id ,对用户id取模,然后MD5处理用户id,截取多少位做字段存储唯一值。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM