mysql - 如何优化这个mysql查询?运行缓慢

标签 mysql sql

我使用的数据库,恕我直言,设计不佳,但也许只是我不理解它。无论如何,我有一个提取正确信息的查询,但它确实减慢了我的 php 脚本。我希望有人可以看看这个,让我知道嵌套查询到这个深度是否不好,以及是否有一种方法可以根据下面的 sql 语句中描述的关系来简化查询。

SELECT name 
FROM groups 
WHERE id = (SELECT DISTINCT immediateparentid 
            FROM cachedgroupmembers 
            WHERE groupid = (SELECT  g.id AS AdminCc
                             FROM Tickets t, groups g  
                             WHERE t.Id = 124 AND t.id = g.instance AND g.type = 'AdminCc')
                             AND immediateparentid <> (SELECT  g.id AS AdminCc
                                                       FROM Tickets t, groups g  
                                                       WHERE t.Id = 124 AND t.id = g.instance AND g.type = 'AdminCc'))

请帮忙

更新:

这是使用 Explain 的输出 Explain

您可能需要右键单击并选择“查看图像”以使文本清晰。

最佳答案

据我所知,您可以消除一个子选择。

SELECT name 
FROM groups 
WHERE id = (
    SELECT DISTINCT immediateparentid 
    FROM cachedgroupmembers 
    WHERE groupid = (
        SELECT g.id 
        FROM Tickets t, groups g
        WHERE t.Id = 124 AND t.id = g.instance AND g.type = 'AdminCc'
    ) AND immediateparentid != groupid
)

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

相关文章:

php - 如何卸载 php apache 和 mysql 以便我可以使用 MAMP - MAC Lion

python - 如何使用 Python 从 Bash 提示符中捕获用户输入

sql - 使用SQL Server进行应用程序日志记录。优点缺点?

mysql - 如何在 MySQL 中使用列表

MySQL : create virtual column et set defaut value

php - 更新MySQL表的特定记录

php - 分页 Wordpress $wpdb 查询?

mysql - 将 SQL 查询转换为 Rails ActiveRecord 查询

SQL Server : removing duplicate column while joining tables

mysql - 如何在 MySQL 中使用 tag_ids 获取相关问题?