单库瓶颈:如果在项目中使用的都是单MySQL服务器,则会随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行存储,存在一下性能瓶颈:
分库分表:就是将数据分散存储,是将单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。
特点:以表为依据,根据业务将不同表拆分到不同库中。
特点:以字段为依据,根据字段属性将不同字段分到不同表中 。
特点:以字段为依据,按照一定策略,将一个库的数据拆分到多个库中
特点:以字段为依据,按照一定策略,将一个表的数据拆分到多个表中。
在实际应用中,可以同时采用分库和分表的策略,根据业务需求和系统负载情况来选择合适的分库分表策略。
根据业务需求,选择具有业务含义的键作为分库分表的依据,例如,按照用户ID分表
对于大部分应用来说,按时间进行分表是一个常见的选择,可以更容易地管理历史数据
使用哈希函数将数据均匀地分散到不同的库或表中,以防止热点数据集中存储
按照数据范围进行分表,适用于数据按照某一范围规律增长的情况