タグ

ブックマーク / chiastolite.hatenablog.com (1)

  • MySQLのgenerated columnを使ってOR検索を潰す - chiastolite’s blog

    製品に販売期間設定がある場合に、販売可能なものを探すのに↓のようなクエリが発行されるとする (valid_from と valid_to が null の場合は、期間の設定が特に設定されておらず期限のチェックが不要という意味) SELECT * FROM products WHERE (valid_from < '2018-12-26' OR valid_from IS NULL) AND (valid_to > '2018-12-26' OR valid_to IS NULL) このとき valid_from と valid_to の複合インデックスがあっても、or検索があるため上手く使ってもらえない(と思う) このorを消す方法を考える valid_from、valid_to に NOT NULL制約をつけそれぞれに日付の最小値、最大値を入れることができればこの問題は解決できるが、既存

    MySQLのgenerated columnを使ってOR検索を潰す - chiastolite’s blog
    tofu-kun
    tofu-kun 2019/01/24
  • 1