相关疑难解决方法(0)

263
推荐指数
10
解决办法
27万
查看次数

哪个更快?游标循环中的多个更新查询,还是单个查询?

哪个更快?游标循环中的多个更新查询,还是单个查询?例如,在这种情况下,哪个更快?此查询在触发器中。

  1. 循环中的多个查询

    DECLARE done INT DEFAULT FALSE;
    DECLARE record_id INT;
    DECLARE cur CURSOR FOR SELECT id FROM table1 WHERE column = 0;
    
    OPEN cur;
    
      users_loop: LOOP
    
         FETCH cur INTO id;
    
         IF done THEN
             LEAVE users_loop;
         END IF;
    
         UPDATE table2 SET column = 0 WHERE id = id;
    
      END LOOP;
    
    CLOSE cur;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 单一查询

     CREATE TEMPORARY TABLE tmp_table (id int(10));
    
     INSERT INTO tmp_table SELECT id FROM table1 WHERE column = 0;
    
     UPDATE table2 SET column = 0 WHERE id IN(SELECT id FROM …
    Run Code Online (Sandbox Code Playgroud)

mysql performance optimization update query-performance

6
推荐指数
1
解决办法
9114
查看次数