【问题标题】:mySQL inner counts are killing my query performancemySQL 内部计数正在扼杀我的查询性能
【发布时间】:2017-08-02 09:37:10
【问题描述】:

SELECT DISTINCT cl.client, cl.clientUNIQUE, (SELECT COUNT(taskUNIQUE) AS countTasks FROM tasks WHERE state='NF' AND clientUNIQUE=cl.clientUNIQUE AND status='V') AS ActiveTasks, (SELECT COUNT(projectUNIQUE ) FROM projects WHERE status='V' AND state!='end' AND clientUNIQUE=cl.clientUNIQUE) AS ActiveProjects FROM clients AS cl LEFT JOIN tasks AS tsk ON cl.clientUNIQUE=tsk.clientUNIQUE WHERE cl.status='V' AND cl.accountUNIQUE='[client]0E2D3B21D716BB71A83331558656EC47' ORDER BY ActiveTasks DESC LIMIT 10

This query takes about 5 second to run. Too many counts? Any suggestion to improve performance?

【问题讨论】:

  • 查看来自新用户的this question,现在查看您的。请多加努力。
  • 你的架构是什么?你的索引是什么?
  • @juergen d: 查询结果还可以,就是时间太长了。
  • @kmoser: 只在自增列上使用索引

标签: mysql


【解决方案1】:

好的,这很尴尬,但我没有创建任何索引。感谢 kmoser 的问题引导我找到答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 2023-03-05
    相关资源
    最近更新 更多