mysql - 为什么 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。
我不知道我能在那里做什么,它太慢了......
解决方案
确保您有一个正确的索引,例如打开的trade_id 列上的复合索引
create index myidx on cases ( trade_id, opened )
推荐阅读
- airflow-scheduler - 使用 BranchPythonOperator 创建的分支不合并?
- python - 调试器忽略函数中的输入(Python)
- unix - 编译:“sigset_t”的类型冲突
- python - 当我尝试从表单添加时出现白色错误屏幕
- java - 启动 Jitsi 视频通话活动时的问题
- excel - 从不同的工作簿复制并粘贴到 MasterSheet
- html - 使每个输入的标签可点击
- php - 界面中的类型提示
- c - 最小二乘回归线和误差的 C 程序
- unit-testing - SpringBoot 的 MockMVC 测试更适合surefire(mvn test)还是failsafe(mvn verify)?