数据库 MySQL id 值越来越大,咋办?

luffycn · 2015年02月13日 · 最后由 torvaldsdb 回复于 2017年02月15日 · 3894 次阅读

如果把数据删除,再重新插入数据时,id 值还是会在原来基础上不断继续增大 到时就有可能出现,整张表可能只有 1w 条数据,但是 ID 值却可能后面有 10 几个 0 的超大值

这个会有影响嘛?,ID 值最大限制是多少?

int 21 亿 够用么?

32 位系统有 21 亿,64 位系统可以到 9223372036854775807。请问楼主你数据量多大?

默认不就是长度是 11 的 int 类型么,

好像会自动转成 bigint

@huobazi @msg7086 数据量本身并不算大,关键在于我这里有一个定时程序,每隔几分钟要把某些数据先删除,再重新插入,导致 id 值 会不断增大。

请问这种情况怎么破?

没什么难破的,用 Int64 就好了

建议楼主在删除老数据的时候重置一下此表的 AUTOINCREMENT

回收空 ID 💯

楼主纪录的是采集的缓存 HTML 吧?

让我想起新浪的 id 用 int 存不下了

#6 楼 @luffycn 我看这个描述需要的是 Update。

#6 楼 @luffycn 如果你真的对 ID 那么那么敏感的话,可以考虑找出表中最小的数值 min_id,然后 set id = id - min_id + 1 处理一下,然后重置 autoincrement = 1,就会自动减小新生成的递增值了。 如果是删除所有数据的情况下,可以改用 truncate,会同时重置 autoincrement。

#1 楼 @libuchao 你这个链接 好神奇 ! wow!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号