MySQL int类型主键超出限制

今天在公司突然发现一个问题,数据记录少了两天的量。。。从周五开始就没有了,奇怪的是这几天并没有动过正式环境,包括服务器,数据库,代码啥的都没有动过。将问题反映给老大,老大也表示很奇怪,说要去运维查一下。

我们的数据是从kafka消息队列消费下来,进行处理在保存到数据库一张临时表,然后通过这个临时表上面的触发器根据唯一主键写入另一张表的。刚开始发现kafka消费者是没有问题的,临时表的数据也写入成功了,所以就怀疑是触发器没有执行成功。将触发器删除重建,发现还是不行。最后发现是插入的表的id已经达到最大值了,导致无法插入。

插入的表的主键,采用的是int类型,一共能插入21亿条数据。现在是数据量已经达到了最大值。

找到了问题的所在就好解决,将字段类型改成了bigint,将java实体改成了Long类型。

最初在建立数据库的时候并没有考虑到数据量会这么多,而且也没有想到才这么短的时间数据量就已经达到21亿条了。