所以我在我的网站上有一个用于照片的 mysql 表。每张照片都与两组实体之一相关联,因此有两列;nEntity1FK,nEntity2FK。
在每一行中,这些列中恰好有一个总是非零。因此,大约 50% 的行在 nEntity1FK 中具有“0”,大约 50% 在 nEntity2FK 中具有“0”。
到目前为止一切都很好。直到我添加一个WHERE nEntity1FK=0
子句。事情突然变得很慢,即使我不得不LIMIT 0,50
这样做。
我有点明白为什么。我知道低基数索引很糟糕,通常不会被使用。什么是替代方案?我唯一能想到的是将我的所有照片信息保存在 2 个单独的表中,而不是一个表中(并且有一个视图将它们连接在一起以进行需要两者的查询)。这对我来说似乎很混乱/麻烦,有更好的选择吗?
谢谢大家。