sql查询计数为两个"未知"列

时间:2017-09-20 16:20:17

标签: mysql sql

我需要查询满足多个过滤条件的COUNT行。但是,我不知道将合并哪些过滤器,因此我无法创建适当的索引。

SELECT COUNT(id) FROM tbl WHERE filterA > 1000 AND filterD < 500

这非常慢,因为它必须进行全表扫描。有没有办法在我的情况下进行性能查询?

 id, filterA, filterB, filterC, filterD, filterE
    1, 2394, 23240, 8543, 3241, 234, 23

1 个答案:

答案 0 :(得分:0)

这里的问题是如何在多个条件上索引数据存在某些限制。这些是标准的基本问题,并且在某种程度上ElasticSearch能够摆脱这些问题,它只是对您可能想要过滤的所有内容进行强力并行和索引。

通常一些过滤器会更常用,更具选择性,所以通常会先查看查询的实际示例,并围绕过去执行缓慢的查询构建索引。

这意味着您从慢速查询记录开始,然后首先关注最重要的查询,直到您获得可以容忍的所有内容。