SQLite:查询分区表

时间:2018-06-08 06:12:04

标签: sql sqlite

我有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。表的数量可以随时更改。

1 个答案:

答案 0 :(得分:1)

如果可能的话,SQLite会执行subquery flattening,因此只需将表与UNION ALL(最好在视图中)组合并对其进行查询就没有磁盘/内存损失。