mysql 批量修改优化方案

一、场景批量修改多条数据
1、循环里修改

     public function test1foreach1()
    {
   
        $startTime = time();
        $table = M("table");
        $data =  $table->select();
        foreach ($data as $k => $v) {
   
            $table->where("id = {
     $v['id']}")->save(['type' => $v['type'] + 1,'league'=>{
   $v['league'].$k}]);
        }
        $endTime = time();
        echo  $endTime - $startTime;
        die;
    }

2、拼接case when

public function test1()
    {
   
        $startTime = time();
        $leagueValues = [];
        $typeValues = [];
        $ids = [];
        $table = M("table");
        $data =  $table->select();
        $updateSql = "UPDATE table SET league = CASE id";
        foreach ($data as $row) {
   
            $league = $row['league'] . $row['type'];
            $league = str_replace("'", "\'", $league);
            $type = $row['type'] - 1;
            $values1[] = "WHEN {
     $row['id']} THEN '{
     $league}'";
            $values2[] = "WHEN {
     $row['id']} THEN '{
     $type}'";
            $ids[] = $row['id'];
        }
        $ids = implode(',', $ids);
        $values1 = implode(' ', $values1);
        $values2 = implode(' ', $values2);
        $updateSql .= " {
     $values1} END , type = CASE id {
     $values2} END WHERE id IN ({
     $ids})";

        $result = M("table")->execute($updateSql);
        $endTime = time();
        echo  $endTime - $startTime;
        die;
    }

一万条数据第一种方式需要执行900多秒。第二种只需要3秒左右。

相关推荐

  1. mysql 批量修改优化方案

    2023-12-11 19:34:02       52 阅读
  2. 两种方法实现批量修改Word文件页眉

    2023-12-11 19:34:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-11 19:34:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-11 19:34:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-11 19:34:02       87 阅读
  4. Python语言-面向对象

    2023-12-11 19:34:02       96 阅读

热门阅读

  1. Boost.SafeNumerics模块测试:constexpr转换编程

    2023-12-11 19:34:02       53 阅读
  2. 滑动窗口与堆结合

    2023-12-11 19:34:02       54 阅读
  3. PHP基础 - 常量字符串

    2023-12-11 19:34:02       60 阅读
  4. Vue3中组合式ApI的父子组件的数据传递

    2023-12-11 19:34:02       103 阅读
  5. Linux watch命令监视命令输出

    2023-12-11 19:34:02       68 阅读
  6. QT实现的自定义进度条编程

    2023-12-11 19:34:02       69 阅读
  7. openssl编译和集成

    2023-12-11 19:34:02       97 阅读
  8. python一点通:参数列表里面有星号 * 什么意思?

    2023-12-11 19:34:02       115 阅读
  9. 力扣labuladong一刷day34天

    2023-12-11 19:34:02       58 阅读
  10. ubuntu apt指令集学习心得

    2023-12-11 19:34:02       47 阅读
  11. 动态规划算法介绍

    2023-12-11 19:34:02       83 阅读