如果把数据删除,再重新插入数据时,id 值还是会在原来基础上不断继续增大 到时就有可能出现,整张表可能只有 1w 条数据,但是 ID 值却可能后面有 10 几个 0 的超大值
这个会有影响嘛?,ID 值最大限制是多少?
http://lmgtfy.com/?q=mysql+integer+max+limit
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!