0

0

mysql-sql 语句的查询优化,各位看看可以怎么优化,新人初学,SQL有点复杂,压力山大。。。。。

php中文网

php中文网

发布时间:2016-06-06 09:39:40

|

1159人浏览过

|

来源于php中文网

原创

mysql优化sql

如下 项目用的是 mysql 是项目的查询sql语句, 查询结果为 88 的竟然要1分40秒, 结果为5的要 2秒,
sql语句不是我写的,大家看看有什么地方可以优化的,想要优化查询速度的话,可以从哪方面入手修改。

 SELECT   COUNT(DISTINCT ttsp.id) AS postpone_count,  ttp.task_document_id AS task_document_id,  ttm.id AS attention_id,  tt.company_id,  tt.create_by,  ts.name AS principal,  ts.staff_id AS principal_id,  tt.postpone_time,  tt.subtask_bind_step_id,  tt.current_task_step_id,  tt.create_time,  tts.task_step_id AS has_taskstep,  tts2.current_task_step,  tt.po_predict_work_load,  tt.task_priority,  tt.expect_end_time,  tts2.executor,  tt.start_time,  tt.end_time,  tt.type,  tta.task_annex_id AS annex,  tt.task_id AS id,  tt.title AS NAME,  CASE    WHEN (      (SELECT         COUNT(*)       FROM        t_task_step       WHERE task_id = tt.task_id         AND del_flag = 0) > 0    )     THEN 'closed'     WHEN (      (SELECT         COUNT(*)       FROM        t_task       WHERE pid = tt.task_id         AND del_flag = 0) > 0    )     THEN 'closed'     ELSE 'open'   END AS state,  '3' AS style,  tt.author AS task_author,  tt.work_load AS task_work_load,  tm.comment AS content_comment,  tn.comment AS time_comment,  tq.comment AS other_comment,  tnn.comment AS inner_comment,  CONCAT(tt.task_id, '_t') AS id_type,  SUM(tw.workload) count_workload,  tt.pid,  CASE    WHEN tt.task_priority = '1'     THEN 'task-emergency'     WHEN tt.task_priority = '2'     THEN 'task-imprtant'     WHEN tt.task_priority = '3'     THEN 'task-general'     ELSE 'task-normal'   END AS iconCls FROM  t_task tt   LEFT JOIN t_task_step tts     ON (      tt.task_id = tts.task_id       AND tts.del_flag = '0'    )   LEFT JOIN t_workload tw     ON (      tts.task_step_id = tw.task_step_id       AND tw.del_flag = '0'    )   LEFT JOIN t_task_content ttc     ON (      tt.task_id = ttc.task_id       AND ttc.del_flag = '0'    )   LEFT JOIN     (SELECT       *     FROM      t_task_annex     ORDER BY task_annex_id DESC) tta     ON (      tt.task_id = tta.task_id       AND tta.del_flag = '0'       AND tta.annex IS NOT NULL    )   LEFT JOIN t_project tp     ON tt.project_id = tp.project_id   LEFT JOIN t_company tco     ON tt.company_id = tco.company_id   LEFT JOIN     (SELECT       foreign_id,      COMMENT,      create_time     FROM      t_comment     WHERE del_flag = '0'       AND TYPE = 2       AND comment_type = 0     ORDER BY create_time DESC     LIMIT 0, 1) AS tm     ON tt.task_id = tm.foreign_id   LEFT JOIN     (SELECT       foreign_id,      COMMENT,      create_time     FROM      t_comment     WHERE del_flag = '0'       AND TYPE = 2       AND comment_type = 1     ORDER BY create_time DESC     LIMIT 0, 1) AS tn     ON tt.task_id = tn.foreign_id   LEFT JOIN     (SELECT       foreign_id,      COMMENT,      create_time     FROM      t_comment     WHERE del_flag = '0'       AND TYPE = 2       AND comment_type = 2     ORDER BY create_time DESC     LIMIT 0, 1) AS tq     ON tt.task_id = tq.foreign_id   LEFT JOIN     (SELECT       foreign_id,      COMMENT,      create_time     FROM      t_comment     WHERE del_flag = '0'       AND TYPE = 2       AND comment_type = 3     ORDER BY create_time DESC     LIMIT 0, 1) AS tnn     ON tt.task_id = tnn.foreign_id   LEFT JOIN     (SELECT       task_step_id,      TYPE AS current_task_step,      to_staff AS executor,      to_staff_email AS executor_email     FROM      t_task_step     WHERE del_flag = '0') tts2     ON tts2.task_step_id = tt.current_task_step_id   LEFT JOIN t_staff ts     ON (tt.executor = ts.staff_id)   LEFT JOIN     (SELECT       ttp.task_id,      GROUP_CONCAT(producttype_id SEPARATOR ',') AS producttype_id,      task_document_id     FROM      (SELECT         ttp.producttype_id,        ttp.task_id,        ttdl.task_document_id       FROM        t_task_producttype_link ttp         LEFT JOIN           (SELECT             producttype_id,            GROUP_CONCAT(id SEPARATOR ',') AS task_document_id           FROM            t_task_document_type_link           GROUP BY producttype_id) ttdl           ON ttp.producttype_id = ttdl.producttype_id) ttp     GROUP BY task_id) ttp     ON ttp.task_id = tt.task_id   LEFT JOIN t_task_step_postpone_history ttsp     ON ttsp.foreign_id = tt.task_id     AND ttsp.type = 0     AND ttsp.del_flag = 0   LEFT JOIN     (SELECT       *     FROM      t_task_myattention     WHERE user_id = '202b293f-da58-4cd3-b12d-40e4f9ce0d2c') ttm     ON ttm.task_id = tt.task_id WHERE tco.del_flag = '0'   AND tt.del_flag = '0'   AND tp.del_flag = '0'   AND tt.project_id = 44   AND tt.pid IS NULL GROUP BY tt.task_id ORDER BY tt.task_id DESC 

这是 explain的查询结果
图片说明

绘蛙
绘蛙

电商场景的AI创作平台,无需高薪聘请商拍和文案团队,使用绘蛙即可低成本、批量创作优质的商拍图、种草文案

下载

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

Webpack4.x---十天技能课堂
Webpack4.x---十天技能课堂

共20课时 | 1.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号