by the dreamland

夢の国の近くで暮らすエンジニア(おもにインフラ系)のブログ

DBのインデックスはどのような方針で貼るべきでしょうか?(こぴぺ)

現在は基本的に下記のような方針でインデックスを貼っています。

  • インデックスを作成したほうがよい場合

    • 大規模な表のある特定の行を頻繁に検索する
    • 列の値が(ほぼ)一意的である
    • WHERE句の条件として頻繁に使用する列である
  • インデックスを作成しないほうがよい場合

    • 列内の値の種類が少ない(性別など)
    • NULL値が多く、NULLでない値を検索しない
    • 表が小規模である

上記の他に検討すべき観点やインデックスを貼るべきケースなどあれば教えて頂ければと思います。
PostgreSQLMySQL固有の観点や考慮すべき点などでも構いません。