为什么有两个WHERE的MySQL查询如此缓慢

时间:2019-03-24 20:33:34

标签: mysql

我有问题。 在这段时间内,我在mysql中得到很多行。

要过滤,我想获得一些信息。

这是我的查询

SELECT COUNT(*) AS cases,
       SUM(`item_price`) AS preturile
  FROM cases
  WHERE opened = 1 AND
        trade_id = '1234'

这很慢...需要1.5秒左右的时间

如果我踢出开门= 1,则看起来像这样

SELECT COUNT(*) AS cases,
       SUM(`item_price`) AS preturile
  FROM cases
  WHERE trade_id = '1234'

速度又快又好!但是我需要在那里打开1 ...为什么这么慢?

打开的是int(11)并具有INDEX。

我不知道该怎么办,太慢了...

1 个答案:

答案 0 :(得分:2)

确保您具有正确的索引,例如,在trade_id列上已打开的综合索引

create index  myidx on cases ( trade_id, opened )