我正在对两个表之间的大量记录进行一些查询。表的唯一键是自动增量 id。
SELECT
discounts.id,
vendor_number,
discounts.sku,
deal_number,
deal_start_date,
deal_end_date,
sales.cost,
sales.quantity,
sales.invoice_date
FROM
discounts
INNER JOIN
sales ON discounts.sku = sales.sku
WHERE
invoice_date >= deal_start_date
AND invoice_date <= deal_end_date
我确信该查询的工作是日期比较,但我不确定要设置哪种索引来帮助该查询更好地执行。
最佳答案
where
条件实际上是连接的一部分(假设 deal_start_date
和 deal_end_date
来自 discounts
table )。如果是这样,这只是一个join
优化。最好的索引将在join
中使用列,首先是sku
(因为相等)。所以,我认为这些都是很好的索引:
sales(sku, invoice_date)
discounts(sku, deal_start_date, deal_end_date)
关于mysql - 哪些索引在此查询中有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437011/