我有如下查询:
SELECT product.id FROM products
INNER JOIN supplier ON supplier.id = product.supplier_id
WHERE supplier.country = 'UK'
AND (
(1000 BETWEEN product.date_on AND product.date_off) OR
(2000 BETWEEN product.date_on AND product.date_off) OR
(2000 >= product.date_on AND
(product.date_off IS NULL OR 1000 <= product.date_off))
)
该查询运行得太慢了,我相信我需要一些索引,但我不确定要添加什么。我在 product.date_on 和 product.date_off 上有索引,但是因为我在 AND 子句中多次比较这些值,所以我相信没有使用索引。也许可以使用复合索引,但我不知道应该以什么顺序进入其中以优化它。顺便说一句,1000 和 2000 是我传递的两个变量...