だから私は自分のウェブサイトに写真用のmysqlテーブルを持っています。すべての写真は、エンティティの 2 つのセットのいずれかに関連付けられているため、2 つの列があります。nEntity1FK、nEntity2FK。
これらの列の 1 つだけが、すべての行で常に非ゼロです。そのため、行の約 50% は nEntity1FK で「0」を持ち、約 50% は nEntity2FK で「0」を持ちます。
これまでのところ、すべて順調です。WHERE nEntity1FK=0
条項を追加するまで。やるべきことがあったとしても、突然、物事がかなり遅くLIMIT 0,50
なります。
理由はなんとなくわかります。カーディナリティの低いインデックスは良くなく、一般的には使用されないことがわかりました。しかし、代替手段は何ですか?私が考えることができる唯一のことは、すべての写真情報を 1 つではなく 2 つの別々のテーブルに保持することです (両方を必要とするクエリのためにそれらを結合するビューを用意します)。これは私には面倒/面倒に思えます。より良いオプションはありますか?
皆さんありがとう。