我正在使用(MySQL)更新另一个表的查询,需要一些帮助。运行嵌套查询时,查询将在不到一秒钟的时间内运行。但是,一旦我包含了更新部分,就需要数小时才能运行。我正在使用的查询如下所示:

UPDATE sys_reference.outlet_reference OUTREF LEFT JOIN
(SELECT
    store_code 'storeCode'
,   LEFT(header_value,20) 'CoOrds'
FROM
    am_data_warehouse.am_headers
WHERE
    action_date = CURDATE()- 1
AND header_field_id IN (3641, 4937)
) GPSCO
ON OUTREF.store_code = GPSCO.storeCode
SET OUTREF.gps_coordinates = GPSCO.CoOrds


下面是要更新的表的结构:

mysql - 更新查询需要很长时间才能运行-LMLPHP

最佳答案

我认为子查询对您没有任何帮助。我认为您可以重写它以消除子查询。

UPDATE
    sys_reference.outlet_reference AS OUTREF
    INNER JOIN am_data_warehouse.am_headers AS GPSCO ON OUTREF.store_code =
GPSCO.storeCode
SET
    OUTREF.gps_coordinates = LEFT(GPSCO.header_value,20)
WHERE
    GPSCO.action_date = CURDATE() - 1
    AND GPSCO.header_field_id IN (3641, 4937)

关于mysql - 更新查询需要很长时间才能运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48207984/

10-09 01:01