请问MySQL按月份进行分表,引擎是InnoDB

我对数据库分表是一片空白,各位帮忙给个建议。

阅读 3.7k
3 个回答

两种分法
1.水平分表
就是一个数据量很大的表,可以按照hash或者一定的规则,把这些数据分散到不同的表里面
2.垂直分表
就是把字段数很多的表 分成多个表然后关联起来

楼上正解罢根据需求选择垂直或者水平,如日志表适合以日期为分表规则(大部分,小部分日志表可能不是。)。而如果是某些常用数据,则可以依据字段分割。
分表规则的话,我个人是在程序上实现的,因为我那个是依据日期规则分表的,所以通过程序生成以及查找表名获取数据。如果是字段切割开分表则可以写对应的视图在数据库,调用直接怼视图进行调用就好。

直接分区就行了,分表是类似读写分离的那种的,你可以直接用类似

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); 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题