所以我的网站上有一张mysql表格。每张照片都绑定到两组实体中的一组,因此有两列; nEntity1FK,nEntity2FK。
这些列中只有一列在每一行中始终为非零。因此,大约50%的行在nEntity1FK中具有“0”,并且约50%在nEntity2FK中具有“0”。
到目前为止一切顺利。直到我添加WHERE nEntity1FK=0
子句。事情突然变得非常缓慢,即使我有一个LIMIT 0,50
。
我有点理解为什么。我得到的低基数索引是坏的,通常不会被使用。但是有什么选择呢?我唯一能想到的就是将我的所有照片信息保存在2个独立的表中,而不是一个(并且有一个视图将它们连接在一起,以便查询需要两者)。这对我来说似乎很麻烦/麻烦,还有更好的选择吗?
谢谢大家。
答案 0 :(得分:1)
解决方案是使用位图索引,但据我所知MySql不支持它。 是否可以将数据拆分为两个表?其中WHERE nEntity1FK = 0且一个WHERE nEntity1FK = 1