通过Explain查询sql执行计划

在我们查询sql 的时候,有时候查询速度很慢,这时候我们就需要通过EXPLAIN 来获取MySQL如何实行SELECT语句的信息,来判断应该优化哪里.

EXPLAIN
select t.id,t.name,r.result from zt_task t,tiz_zentao_result r
        WHERE r.object_id = t.id and r.action='finished' and t.deleted = '0' and t.id
        IN
        (SELECT id FROM zt_task where (status='done' or status='closed') AND finishedBy = (
        SELECT account FROM tiz_zentao_integral_user where user_id = 'UBcZBhXJ3WXn7dAaVZyaLA')) AND r.object_type='task'

下面就是这个sql的执行计划信息
通过Explain查询sql执行计划_第1张图片

首先我们需要知道每个字段的意思
通过Explain查询sql执行计划_第2张图片
通过Explain查询sql执行计划_第3张图片
这里写图片描述
通过Explain查询sql执行计划_第4张图片
通过Explain查询sql执行计划_第5张图片

再来分析这条语句的执行计划

该如何优化?

你可能感兴趣的:(【数据库】)