0

所以我在我的网站上有一个用于照片的 mysql 表。每张照片都与两组实体之一相关联,因此有两列;nEntity1FK,nEntity2FK。

在每一行中,这些列中恰好有一个总是非零。因此,大约 50% 的行在 nEntity1FK 中具有“0”,大约 50% 在 nEntity2FK 中具有“0”。

到目前为止一切都很好。直到我添加一个WHERE nEntity1FK=0子句。事情突然变得很慢,即使我不得不LIMIT 0,50这样做。

我有点明白为什么。我知道低基数索引很糟糕,通常不会被使用。什么是替代方案?我唯一能想到的是将我的所有照片信息保存在 2 个单独的表中,而不是一个表中(并且有一个视图将它们连接在一起以进行需要两者的查询)。这对我来说似乎很混乱/麻烦,有更好的选择吗?

谢谢大家。

4

1 回答 1

1

解决方案是使用位图索引,但据我所知 MySql 不支持它。是否可以将数据拆分为两个表?一个 WHERE nEntity1FK=0 和一个 WHERE nEntity1FK=1

于 2010-11-10T09:39:26.923 回答