我对数据库分表是一片空白,各位帮忙给个建议。
楼上正解罢根据需求选择垂直或者水平,如日志表适合以日期为分表规则(大部分,小部分日志表可能不是。)。而如果是某些常用数据,则可以依据字段分割。
分表规则的话,我个人是在程序上实现的,因为我那个是依据日期规则分表的,所以通过程序生成以及查找表名获取数据。如果是字段切割开分表则可以写对应的视图在数据库,调用直接怼视图进行调用就好。
直接分区就行了,分表是类似读写分离的那种的,你可以直接用类似
Create table user( id tinyint(3) not null primary key, name char(30) not null comment ‘姓名’)
partition by range(id)( partition id01 values less than (10), partition id02 values less than (20), partition id03 values less than maxvalue);
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
2 回答2.8k 阅读✓ 已解决
两种分法
1.水平分表
就是一个数据量很大的表,可以按照hash或者一定的规则,把这些数据分散到不同的表里面
2.垂直分表
就是把字段数很多的表 分成多个表然后关联起来