mysql更新大数据表-策略

大批量更新数据如果循环单条插入效率低下,时间大多耗费在mysql连接上,考虑减少链接。

方法1;使用CASE WHEN 拼成一条sql执行,减少数据库链接

UPDATE mytable SET
    myfield = CASE id
        WHEN 1 THEN 'value'
        WHEN 2 THEN 'value'
        WHEN 3 THEN 'value'
    END
WHERE id IN (1,2,3)

方法2;复制原表建立新表,处理好需要更新的数据,插入数据到新表,删除老表,改名新表

使用:

1,CREATE TABLE a6 LIKE a1;//复制原表结构和索引,不包含数据
2,CREATE TABLE a6 AS SELECT * FROM a1 ;//复制原表结构和数据,不包含索引

 

发表评论