neo*_*neo 5 sql scalability execution-time
(与查找列表中最低未使用的唯一ID以及在SQL表上获取未使用的唯一值相关)
假设我有一个包含id列和其他一些表的表(它们在这里没有任何区别):
+-----+-----+
| id |other|
+-----+-----+
Run Code Online (Sandbox Code Playgroud)
id具有数值增加值.我的目标是获得最低的未使用ID并创建该行.因此,当我第一次运行它将返回0并且该行的行将被创建.几次执行后,它将如下所示:
+-----+-----+
| id |other|
+-----+-----+
| 0 | ... |
| 1 | ... |
| 2 | ... |
| 3 | ... |
| 4 | ... |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)
通常,这些行中的某些行可能会被删除.假设用的ID的行1和3移除.表格看起来不像这样:
+-----+-----+
| id |other|
+-----+-----+
| 0 | ... |
| 2 | ... |
| 4 | ... |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)
如果我现在再次运行查询它想要返回id 1并且应该创建此行:
| id |other|
+-----+-----+
| 0 | ... |
| 1 | ... |
| 2 | ... |
| 4 | ... |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)
接下来的时间查询运行时,它应该返回ID的3,5,6,等.
运行这类查询的最有效方法是什么,因为我需要在一秒钟内相当频繁地执行它们(可以假设id是表的唯一目的)?是否可以通过一个查询获取下一个未使用的行?或者通过引入另一个跟踪未使用ID的表来更容易和更快速?
如果它明显更快,那么也可以获得重用表中任何漏洞的方法,前提是所有数字都会在某个时间重用.
奖金问题:我打算使用SQLite来存储这类存储信息,因为除了存储这些id之外我不需要数据库.有哪些可以做这个工作任何其他免费的(如语音)服务器显著快?
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |