闪亮菜鸟

导航

当一个表的数据量过大,引起存储不够或者查询较慢问题时,应该怎么办?

纵向切分表

将一个表按照字段切分成两个或者多个表,将常用的字段切分到一张表中,分布式存储

横向切分

有两种方式,一是按照特定的数据量,将表切分成不同的表(表结构一致)来存储,新数据插入到新表中,新表的数据量达到约定拆分的数据量时,再建立新表存储;二是按照某种特定的规则来切分表,然后分布式存储,如按照不同的模块分类来切分表。

第二种方式要注意防止主键冲突,通常采用snowflake-64bit算法即:

但是也存在隐患,snowflake产生的id是有可能重复的,机器id和序列号可以做到不重复,但是同一台上的时间戳不能保证不重复,如网络延迟、抖动,这是个无解的问题

 

posted on 2019-03-30 16:02  闪亮菜鸟  阅读(2348)  评论(0编辑  收藏  举报