0

我正在对两个表之间的大量记录进行一些查询。表唯一的关键是自动增量 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

查询的工作是我确定的日期比较,但我不确定设置什么样的索引来帮助这个查询更好地执行。

4

1 回答 1

1

条件实际上是联接的where一部分(假设deal_start_dateanddeal_end_date来自discounts表)。如果是这样,这只是一个join优化。最好的索引将首先使用 , 中的列joinsku因为相等)。所以,我认为这些将是很好的索引:

sales(sku, invoice_date)
discounts(sku, deal_start_date, deal_end_date)
于 2014-08-21T22:45:31.813 回答