mysql批量update資料優化

2021-10-02 02:00:27 字數 978 閱讀 9694

有一張表goods中有20w條資料,現在需要把某個欄位的值做md5加密後更新。

一條一條迴圈更新效能差不說,還容易造成資料庫阻塞。

<?php

set_time_limit(0

);ini_set

('memory_limit'

,'1g');

$mysqli

=new

mysqli

('127.0.0.1'

,'root'

,'root'

,'wx'

,3306);

if(mysqli_connect_errno()

)$mysqli

->

set_charset

('utf8');

//準備sql語句

$sql

="select faction from wx_goods where status = 1 "

;//執行sql語句

$query

=mysqli_query

($mysqli

,$sql);

$arr

=mysqli_fetch_all

($query

,mysqli_assoc);

$update_sql

='update wx_goods set faction = case id '

;$ids=[

];foreach

($arr

as$v

)$ids

=join

(','

,$ids);

$update_sql.=

' end where id in ('

.$ids

.')'

;$mysqli

->

query

($update_sql

);

MySql批量更新語句(UPDATE)

下面建立乙個名為 bhl tes 的資料庫,並建立名為 test user 的表,字段分別為 id age name create database ifnot exists bhl test 檢視結果 檢視結果 張三 18 男 趙四 17 女 劉五 16 男 周七 19 女 檢視結果 張三 whe...

批量插入,update

setting 1 create table t as select from all objects where 1 2 模擬逐行提交的情況,注意觀察執行時間 declare begin for cur in select from t ref loop insert into t values ...

mysql批量更新update操作,導致鎖表

sql如下 update pay trans set return state 1 where order id and user id 批量執行此條sql時,導致資料表被鎖,所有交易異常。經排查where條件order id and user id 沒有加索引,導致整個表被鎖。mysql的行鎖是通...