gpt4 book ai didi

java - 优化嵌套数据的数据库查询

转载 作者:行者123 更新时间:2023-11-29 00:34:59 25 4
gpt4 key购买 nike

我有一个这样的数据库表,大约有 100 万行:

id    prev    curr    next
1 25 26 27
2 26 27 28
3 27 45 46
4 45 46 47
5 46 47 48
6 47 59 41
..............
..............

在 java 方面,我需要做的是,对于给定的输入,例如(curr = 45 和 diff = 2),我需要获取 45、27、26 等项目的列表。对于输入(curr = 59 和 diff = 1),我需要得到 59、47正如您在上面看到的,prev 和 next 并不总是比 curr 值小 1 和大 1。

目前我在 java 中所做的是基于 diff 值,我查询表以获得 curr 的 prev。然后使用 prev 作为 curr,我再次查询表并继续,直到我得到我要找的东西。但对于 20 或 30 等更高的 diff 值,这是太多的数据库调用。

有没有人对在 1 个数据库查询中执行所有这些操作有任何想法?由于表中的行太多,无法在本地获取和保存数据。

编辑回复评论:

  • 该表还包含其他列,因此数据不会只有 16MB。我只是删除了不相关的列。
  • 当前字段中没有重复项。
  • 还有其他函数使用与 prev 和 curr 类似的 curr 和 next 列。
  • 这不是树结构。所以最后一行是有效的行。

最佳答案

您可以自行加入表格 X 次(基于 diff 的值,但如果您需要支持较大的值,这可能不是一种非常有效的处理方式差异

这对我来说似乎是一个架构问题。如果不进一步了解在写入数据库时​​如何分配项目的顺序,就很难就如何更改架构以允许更容易阅读的查询提出建议。

关于java - 优化嵌套数据的数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com