mysql分区,5亿条数据

mysql中,给一张有5亿条数据的表做分区。大约三个月的数据,该如何做,大约需要多长时间。最好是动态分区。

根据表的某个字段设置分区,通过触发器设置定时任务,你可以参考这篇文章进行设置
mysql 动态新建以及删除分区表 - roucheng - 博客园 因为项目需要,最近研究了一下在mysql数据库下如何动态新建以及删除分区表。如果全部借助存储过程的话,新建以及删除分区表在逻辑上比较死板、不灵活,而且还容易出错。因此,我新建了一个数据表table_f https://www.cnblogs.com/roucheng/p/mysqlfqb.html

分区需要考虑这么两个问题

  1. 分区的原因是什么?
    如果是因为数据量过大,是否可以删除部分数据?
    如果是因为提升查询速度,创建索引是否可以满足条件?
    便于删除数据?
  2. 动态分区会有一些限制,分区数量最大是 1024,达到这个数量之后,需要删除一些分区或者合并一些分区

在我们的业务中,也遇到了对已有的大表进行分区的操作,我们的实现:

  1. 修改表结构,变成分区表
  2. 创建一个数据库定时任务(mysql event)定时删除(或合并)、新建分区表
    可以参考: mysql分区实战_平头哥666的博客-CSDN博客 1.创建表drop table if EXISTS partition_demo;create table partition_demo( id BIGINT auto_increment, batch_no BIGINT, `name` VARCHAR(50), ticker VARCHAR(50), price decimal(18,8), primary key join_primary_key (id, batch_no), index b https://blog.csdn.net/qq_22783587/article/details/119544548
    MySQL数据库,定时创建新分区,删除老分区_平头哥666的博客-CSDN博客 drop table if EXISTS partition_demo;create table partition_demo( id BIGINT auto_increment, batch_no BIGINT, `name` VARCHAR(50), ticker VARCHAR(50), price decimal(18,8), primar... https://blog.csdn.net/qq_22783587/article/details/101158018

日期格式是datetime