我有两张桌子,我经常加入。为了简化这一点,连接返回了我在另一个(复杂)查询中使用的一系列 ID,作为IN
.
所以我一直这样做是为了取回特定的 ID。
需要明确的是,查询并不是非常慢。大约需要2分钟。但由于我通过网页调用此查询,因此延迟很明显。
作为一个具体的例子,假设我要加入的表是一个供应商表和一个包含供应商配备特定日期的仓库的表。基本上,我得到了在特定日期为特定仓库提供服务的供应商的 ID。
它本身的查询无法改进,因为它是两个索引表之间的简单连接,但由于存在日期范围,这使事情变得复杂。
我有以下想法,我不确定它是否有意义。
由于我正在查询的数据(尤其是以前的日期)没有改变,如果我创建另一个表,该表具有作为主键、我的 where 中的列和作为值的 ID 列表(逗号分隔),该怎么办。
这样,它是 1 行的简单 SELECT。
即这样我“预存储”了我需要的供应商ID。
我知道这甚至不是第一个正常的正式形式,但它有意义吗?还有另一种方法吗?