mysql - 如何优化这个完整的查询?

标签 mysql sql performance select query-optimization

在 mysql 上使用以下查询时,它被锁定,

SELECT event_list.* 
FROM event_list 
    INNER JOIN members 
        ON members.profilenam=event_list.even_loc 
WHERE (even_own IN (SELECT frd_id 
                    FROM network 
                    WHERE mem_id='911' 
                    GROUP BY frd_id) 
           OR even_own = '911' ) 
       AND event_list.even_active = 'y' 
GROUP BY event_list.even_id 
ORDER BY event_list.even_stat ASC

IN约束内的内部查询有很多frd_id,所以因为上面的查询很慢...,所以请帮忙。

谢谢。

最佳答案

试试这个:

SELECT el.* 
FROM event_list el 
INNER JOIN members m ON m.profilenam = el.even_loc 
WHERE el.even_active = 'y' AND 
     (el.even_own = 911 OR EXISTS (SELECT 1 FROM network n WHERE n.mem_id=911 AND n.frd_id = el.even_own))       
GROUP BY el.even_id 
ORDER BY el.even_stat ASC

关于mysql - 如何优化这个完整的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228469/

相关文章:

mysql - 如何使用 Laravel 的 eloquent 使非主列在返回的结果集中唯一?

php - 使用 codeigniter 同时插入和更新

php - 关于Php和Mysql哈希表的问题

Sql如何连接列中数据相似的表

algorithm - 大O,您如何计算/近似?

performance - Haskell 计算性能

mysql - 为什么mysql中null=null为假?

mysql - 识别其他表中不存在的值

双连接中的 SQL 最大条件

javascript - 使用 form-repeater 在填充的表中附加新行需要花费大量时间(10-15 秒) - jQuery