用临时表更新表非常慢

时间:2019-08-19 09:58:44

标签: mysql

我有一个邮政编码,可以更新多个数据(阶段中超过10000个)。 它使用临时表,但是非常慢。 在具有Dapper的.net核心2.2中,处理时间超过600秒,我不知道为什么?

我尝试了两种不同的方法来修复它, 像这样:

CREATE TEMPORARY TABLE IF NOT EXISTS t_example_temp(
        id int,
        name int,
        created_time datetime,
        creator_source int,
        creator_sn int,
        is_del int,
        isUpdate int);

-- and insert over 100000 data in this temp table, and next:

-- 1st practice
update t_example as a  , t_example_tempas as  b
set a.id = b.id ,
    a.created_time =b.created_time ,
    a.creator_sn =b.creator_sn ,
    a.is_del = b.is_del 
WHERE  a.id= b.id and b.isUpdate = 1;

-- 2nd practice
update t_example as a  inner join  t_example_tempas as b on a.id = b.id
set a.id = b.id ,
    a.created_time =b.created_time ,
    a.creator_sn =b.creator_sn ,
    a.is_del = b.is_del 
WHERE  b.isUpdate = 1;

两种语法也很慢... 我怎样才能更快?

1 个答案:

答案 0 :(得分:1)

对不起... 我只是忘了在临时表中添加索引...

file:///

对不起,只是愚蠢的问题。