MySQL分库分表

This entry was posted in Unix on 2015/10/02 by alpha.

讨论背景:
MySQL面对容量问题、性能问题和可用性问题时,最通用的方案便是分库分表。
容量上,单表容量有限;同时,单机磁盘空间也有限。
性能上,也与容量挂钩,单表容量过大,性能达到上限;同时,单机的处理能力也有限。
可用性,尽量避免单点故障,尤其是可用性要求高的应用。

实施方案:
这里暂且只记录垂直拆分和水平拆分,垂直水平方案因为是综合方式,不再赘述。

垂直拆分指的是按照数据相关性做拆分,以传统电商系统为例,用户数据拆分至用户库,物流数据放入物流库;对于表,模式如旧——如订单表,将非常用字段拆分至订单数据扩展表。

水平拆分指的是将数据集按照固定规则拆分至多个库(表)。如用户数据,按用户id尾数,分别存储到多个库(表)。需要注意的是,如果用户id生成器生成的id是不均匀的,有可能导致分表后数据分布不均匀。

水平拆分后,查询效率问题需要注意。

你可能感兴趣的:(MySQL分库分表)