タグ

cardinalityとmysqlに関するnabinnoのブックマーク (1)

  • MySQL(InnoDB)でカーディナリティの低いカラムにINDEXを張る - Qiita

    RDBMSのテーブルにINDEX(セカンダリINDEX)を作成する場合、よく「カーディナリティが低いカラムには作るな」と言われます。 どんな場合でも当てはまるのか、少し実験して確かめてみます。 カーディナリティとは 今さら解説するまでもないかもしれませんが、「あるカラムにおける、取りうる値の種類」のことです。 ER図など、DBに絡む場面で別の意味で使われることもありますが、ここではこの意味で使います。 例えば、性別を表すカラムがあり、必須で値を入れなければならない場合は、「男性」「女性」の2種類、です。 「カーディナリティが低いカラムにINDEXを張るな」の意味 先に挙げた「性別」の場合、もし対象となる全レコードで男女の比率がほぼ1:1であれば、INDEXで絞り込める範囲は1/2程度です。絞り込みの効果があまりありません。 このような場合は、わざわざセカンダリINDEXを使うのではなく、テ

    MySQL(InnoDB)でカーディナリティの低いカラムにINDEXを張る - Qiita
  • 1