我有100个表,每个表包含> 1M记录。所有表都有不同的名称,但结构相同:
(valueX INT NOT NULL, valueY INT NOY NULL, valueZ INT NOT NULL).
所有表名都列在单独的表NAMES(name TEXT NOT NULL)
中,但由于SQLite限制,表名不能在查询中替换为变量。
我想在valueX > valueZ AND valueZ < valueY
的所有表格行中搜索,同时跳过前N个并检索下一个K行。
我不想浪费磁盘空间和/或内存,因为我认为它们可能还不够。这有效地消除了我猜的 UNION 选项。
可以做些什么 - 考虑到约束条件?
PS。通过&#34;可以做什么&#34;我表示愿意了解正确的策略并查看相关查询的示例。
PPS。表的数量可以随时更改。
答案 0 :(得分:1)
如果可能的话,SQLite会执行subquery flattening,因此只需将表与UNION ALL
(最好在视图中)组合并对其进行查询就没有磁盘/内存损失。