好的。 我有一个非常大的表格用于统计。我还有一个数据密度较小的表,它提供了备份以及清除主表的方法。它们在列,索引,约束方面都是相同的。
第二个表已使用主表中的特定异常进行更新,因此,当我们清除数据时,异常仍保持记录。
所以我创建了一个视图,该视图在2之间做一个UNION以便查询数据,
表格的简化版本...
ID
TIMESTAMP
KEY_1
KEY_2
KEY_1,KEY2,TIMESTAMP有唯一的约束
和TIMESTAMP上的索引
如果我在任一表中查询时间戳范围和单个key_1,key_2,它将使用约束。 如果我查询视图,它将使用时间戳索引,从而读取所有key_1,key_2值。 即使使用另一个索引TIMESTAMP KEY_1,KEY_2也会使用TIMESTAMP索引读取(KEY_1和KEY_2是从JOINED表中接收的)
因此,读取VIEW中的大量数据要花很多时间,因为它比直接读取表扫描的行多了10000。
似乎我无法在视图中添加约束,该怎么办?