所以我的网站上有一张用于存放照片的mysql表。每张照片都与两组实体之一绑定,因此有两列; nEntity1FK,nEntity2FK。

这些列中的每一列中恰好总是不为零。这样,大约50%的行在nEntity1FK中具有“ 0”,而大约50%的行在nEntity2FK中具有“ 0”。

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

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

谢谢大家

最佳答案

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

10-01 22:54