首页 > 解决方案 > 为什么 MySQL 查询有两个 WHERE 这么慢

问题描述

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

过滤我想得到一些信息。

这是我的查询

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

它非常慢......需要1.5秒或其他东西

如果我踢出open = 1,那么它看起来像这样

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

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

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

我不知道我能在那里做什么,它太慢了......

标签: mysql

解决方案


确保您有一个正确的索引,例如打开的trade_id 列上的复合索引

create index  myidx on cases ( trade_id, opened )

推荐阅读