【问题标题】:Bench-marking SQL Query基准化 SQL 查询
【发布时间】:2017-01-17 13:38:09
【问题描述】:

我有两个返回相同结果的 MySQL 查询。 我想知道哪一个是最好的或优化的解决方案? 我知道 MySQL 分析,我只关心 替代方案吗?

SELECT * 
FROM users 
WHERE id IN (
    SELECT user_id
    FROM users_courses 
    GROUP BY user_id 
    HAVING COUNT(*) >= 2
)

SELECT coding_test.users.name 
FROM coding_test.users_courses
INNER JOIN coding_test.users ON coding_test.users.id = coding_test.users_courses.user_id 
GROUP BY coding_test.users.name 
HAVING COUNT(coding_test.users_courses.course_id) >= 2

谢谢

【问题讨论】:

  • 越快越好。我这样回答的原因(完全无法使用)是因为您没有提供足够的信息。您想问如何对查询进行基准测试吗?使用子查询或JOIN 实际上是一回事(MySQL 的引擎将以完全相同的方式解释和执行两者)。由于having 子句,这两个查询都将同样缓慢。

标签: mysql benchmarking


【解决方案1】:

我正在搜索 MySQL 基准测试,因为这也是我自己的疑问,并找到了另一个非常有趣的答案,可以帮助您处理更复杂的查询:

Testing performance of queries in mysql

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多