分库分表

2020-07-21  本文已影响0人  南园故剑00

1. 分库分表

  1. 垂直分表定义:将一个表按照字段分为多个表,每个表存储其中一部分字段。
  1. 垂直分库是按照业务将表进行分类,分布到不同的数据库上,每个库可以放在不同的服务器上。核心理念是专库专用
  1. 水平分库:是把同一个表的数据按照一定规则拆到不同的数据库中,每个库可以放在不同的服务器上
  1. 水平分表:是在同一个表的数据按照一定规则拆分到多个表中

总结

本章介绍了分库分表的各种方式,它们分别是垂直分表、垂直分库、水平分库和水平分表:

垂直是在设计阶段:

分库分表带来的问题

  1. 事务一致性问题:分布式事务

  2. 跨节点关联查询:

  1. 跨节点分页、排序函数

跨节点多库进行查询时,limit分页、order by排序等问题。
需要先在不同的分片节点中将数据进行排序并返回,然后将不同分片返回的结果集进行汇总和再次排序。

  1. 主键避重

在分库分表环境中,由于表中数据同时存在不同数据库中,主键值平时使用的自增长将无用武之地,某个分区数据库生成的ID无法保证全局唯一。
因此需要单独设计全局主键,以避免跨库主键重复问题。

  1. 公共表

由于分库分表之后,数据被分散在不同的数据库、服务器。

上一篇 下一篇

猜你喜欢

热点阅读