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


纵向切分表

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

横向切分

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

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

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

 


免责声明!

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



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