0

2 つのテーブル間の多数のレコードに対していくつかのクエリを実行しています。テーブルのみのキーは、自動増分 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_datedeal_end_datediscountsjoinjoinsku

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