
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 PRO 千万,就算一个亿好了,直接挨个循环搜索 int 主键看返回结果也用不了多久 |
5 realpg PRO 在地铁上不好打字 如果非要技巧的方法,回家我给你个办法 要求有权限使用临时中间表 |
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 笨办法,太笨,不合适哈。 数据如果缺失,有个定时任务随时采集需要加入的。 |