MySQL 子查询速度慢

标签 mysql optimization

以下查询需要1-2秒的查询时间。

SELECT updated, COUNT( * ) count
FROM v2_subscription
WHERE ss_id IN (SELECT MAX(ss_id) ss_id FROM v2_subscription GROUP BY uid, card_id)

而子查询只需要几毫秒。

SELECT MAX(ss_id) ss_id FROM v2_subscription GROUP BY uid, card_id

我在 uidcard_iduid、card_id 上都有索引

这是我的 sql,我不知道如何优化它。

请指教,

最佳答案

试试这个,可能会有帮助,如果有帮助请告诉我。

SELECT a.updated, COUNT( * ) count
FROM v2_subscription a 
inner join v2_subscription b 
on a.ss_id = max(b.ss_id)
GROUP BY b.uid, b.card_id

或者这个

SELECT a.updated, COUNT( * ) count
    FROM v2_subscription a 
    inner join v2_subscription b 
    on a.ss_id = (SELECT MAX(b.ss_id) b.ss_id FROM v2_subscription b GROUP BY b.uid, b.card_id)

关于MySQL 子查询速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29405170/

相关文章:

php - 尝试使用 php 创建数据库时收到 "HTTP ERROR 500"

Python MySQLdb 响应时间在相似的集合上截然不同

mysql - 如何不选择另一个表中存在的值

c# - 如何删除仅类型不同但使用非默认构造函数的方法之间的重复?

mysql - 替换mysql数据库中的字符

mysql - 无法在 MySQL 中安排存储过程

java - 我怎样才能重写它以避免出现类型不匹配错误?

c# - 通用线性分段查找表

MySQL 优化 - 糟糕的 innodb 设置或硬件不足?

c - C/C++ 优化如何影响 volatile 变量?