Mysql嵌套查询速度非常慢

Mysql嵌套查询速度非常慢,mysql,Mysql,我有一张名为vehicle_plate的表格,如下所示: 并且上表的总记录是715210,我想按特定区域和省份的最新或更新的车牌类型统计车辆,但是当我运行下面的查询时,查询速度非常慢。我的意思是我从来没有得到过结果,只是加载而已 SELECT `pt`.`pt_dr` AS TYPE , COUNT( DISTINCT vp.vehicle_v_id ) AS vehicles, `p`.`province_dr` AS province_nam

我有一张名为vehicle_plate的表格,如下所示:

并且上表的总记录是715210,我想按特定区域和省份的最新或更新的车牌类型统计车辆,但是当我运行下面的查询时,查询速度非常慢。我的意思是我从来没有得到过结果,只是加载而已

            SELECT `pt`.`pt_dr` AS
            TYPE , COUNT( DISTINCT vp.vehicle_v_id ) AS vehicles, `p`.`province_dr` AS province_name, `p`.`id` AS id, vp.vehicle_v_id
            FROM (
            `vehicle_plate` AS vp
            )
            LEFT JOIN provinces AS p ON p.id = vp.provinces_province_id
            LEFT JOIN plate_types AS pt ON pt.id = vp.plate_types_pt_id
            WHERE 1
            AND p.zone_zone_id = '1'
            AND p.id = '1'

            AND vp.id
            IN (

            SELECT vp1.id
            FROM vehicle_plate AS vp1
            GROUP BY vp1.vehicle_v_id
            )
            GROUP BY vp.vehicle_v_id, `vp`.`plate_types_pt_id`
            ORDER BY `p`.`zone_zone_id` , `vp`.`provinces_province_id` , `vehicles` DESC
注意:一辆车可能有多个车牌,我想计算更新的或最新的车牌类型

样本数据:

有时内部联接比in子句更有效

      SELECT `pt`.`pt_dr` AS
        TYPE , COUNT( DISTINCT vp.vehicle_v_id ) AS vehicles, `p`.`province_dr` AS province_name, `p`.`id` AS id, vp.vehicle_v_id
        FROM (
        `vehicle_plate` AS vp
        )
        LEFT JOIN provinces AS p ON p.id = vp.provinces_province_id
        LEFT JOIN plate_types AS pt ON pt.id = vp.plate_types_pt_id
        INNER JOIN   (

        SELECT vp1.id as id
        FROM vehicle_plate AS vp1
        GROUP BY vp1.vehicle_v_id
        ) t on vp.id  = t.id 
        WHERE 1
        AND p.zone_zone_id = '1'
        AND p.id = '1'

        GROUP BY vp.vehicle_v_id, `vp`.`plate_types_pt_id`
        ORDER BY `p`.`zone_zone_id` , `vp`.`provinces_province_id` , `vehicles` DESC

请展示样本数据和您想要的输出。您看过解释计划了吗?@EdHeal您是什么意思?我应该多解释一点吗?关于这一点,我还不清楚。请显示样本数据以及输出,以明确您试图进行的计算。