【问题标题】:What is the best way to keep track a pool of available integer?跟踪可用整数池的最佳方法是什么?
【发布时间】:2015-07-31 00:42:36
【问题描述】:

假设给定一个整数范围(例如,从 1 到 8000000)。这些整数表示为项目的 ID。程序可以将该整数从一个项目中分离出来,以便下一个项目可以重用它。

在数据库行中存储一个单独的整数是不可行的,因为它可以在那里增加数十亿个整数。

我正在考虑使用区间树来查找“间隙”,但我需要将其存储在 mysql 数据库中。

还有其他选择吗?

注意:这不是大学作业。 :)

【问题讨论】:

  • 想象一下,某个进程遍历您的表并每隔一秒删除一次 ID。现在,与将每个可用 ID 保存在表中相比,您的区间树占用的存储空间更多。使用位标志来表示可用性怎么样?那将需要 1000000 个字节。有点荒谬,但这有点取决于您期望数据中存在什么样的漏洞。
  • 我不想说这就是答案,但根据问题,跟踪已采用的整数然后推断出哪个整数可能更容易、内存效率更高、速度更快可用的。

标签: mysql database intervals


【解决方案1】:

在数据库行中存储一个单独的整数是不可行的,因为它可以在那里增加数十亿个整数。

我有点困惑。 8,000,000 不是“几十亿整数”。是800万。这对于存储在表格中是非常可行的。

我的投票是创建一个表。这可能是 8 百万 个整数,带有一个主键和一个指示它们是否被选中的指示符。或者,它可能只是一个已使用(或未使用)的整数表。

【讨论】:

  • 是 80 亿,但你是对的。想了想,我觉得不用上到80亿,就用一张表来存放吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 2010-09-16
  • 2016-06-14
相关资源
最近更新 更多