1
paragon 2017-12-08 14:18:53 +08:00
最好的方法是只插不删啊~
|
2
icemanpro 2017-12-08 14:54:36 +08:00
二分?
|
3
finull 2017-12-08 15:17:15 +08:00
数据量大的情况下,最有效率的方法还是再构造一个只有 id 的表,值从 1 到现在的最大的 id,关联查询获取缺少的 ID
直接查询的方式可以参考这里: https://stackoverflow.com/questions/12325132/mysql-get-missing-ids-from-table |
4
realpg 2017-12-08 15:18:40 +08:00 via Android
千万,就算一个亿好了,直接挨个循环搜索 int 主键看返回结果也用不了多久
|
5
realpg 2017-12-08 15:20:30 +08:00 via Android
在地铁上不好打字 如果非要技巧的方法,回家我给你个办法 要求有权限使用临时中间表
|
6
zhx1991 2017-12-08 15:35:37 +08:00
笨办法, 挨个循环看
|
7
my3157 2017-12-08 15:35:58 +08:00
@finull #3 https://www.codediesel.com/mysql/sequence-gaps-in-mysql/
Finding missing numbers in a sequence Finding if a sequence has gaps is easy, finding the exact list of missing numbers is a little involved. The following query lists the missing numbers from a given auto-increment column. ``` SELECT a.id+1 AS start, MIN(b.id) - 1 AS end FROM testtable AS a, testtable AS b WHERE a.id < b.id GROUP BY a.id HAVING start < MIN(b.id) ``` |
8
LiuXuFei OP 笨办法,太笨,不合适哈。
数据如果缺失,有个定时任务随时采集需要加入的。 |