【发布时间】:2015-07-31 00:42:36
【问题描述】:
假设给定一个整数范围(例如,从 1 到 8000000)。这些整数表示为项目的 ID。程序可以将该整数从一个项目中分离出来,以便下一个项目可以重用它。
在数据库行中存储一个单独的整数是不可行的,因为它可以在那里增加数十亿个整数。
我正在考虑使用区间树来查找“间隙”,但我需要将其存储在 mysql 数据库中。
还有其他选择吗?
注意:这不是大学作业。 :)
【问题讨论】:
-
想象一下,某个进程遍历您的表并每隔一秒删除一次 ID。现在,与将每个可用 ID 保存在表中相比,您的区间树占用的存储空间更多。使用位标志来表示可用性怎么样?那将需要 1000000 个字节。有点荒谬,但这有点取决于您期望数据中存在什么样的漏洞。
-
我不想说这就是答案,但根据问题,跟踪已采用的整数然后推断出哪个整数可能更容易、内存效率更高、速度更快可用的。