mysql 批量更新資料的技巧

2022-07-22 19:45:14 字數 901 閱讀 1512

當在開發的時候有時候需要手動修復資料或者更新資料,一般在自己的專案裡寫乙個main函式對資料讀取或者修改即可,但執行的時候要從本地連線外網,

如果資料量很大的時候。幾十萬或者上百萬等以上的話,效能會非常的差,這時候把sql語句寫好放在資料庫裡直接執行會好很多。

在mysql資料庫裡的innodb引擎,一般資料增刪改都有內建的事務的,而且有預設的超時限制,好像是50s,如果資料量大而且很多連線查詢的話會超時, 

這時候不妨把連線查詢的資料建立臨時表並對臨時表建立索引,然後新增資料或修改資料對臨時表進行連線關聯,這時候效能會快很多,舉個例子:

drop temporary table if exists tmp;

create temporary table tmp

select b.userid,b.field1,b.field2, b.field3 from

(select max(autoid) as autoid

from t_table2  where userid

group by userid) a left join t_table1 b on a.autoid=b.autoid;

alter table tmp add index `index_userid` (`userid` asc) ;

insert into t_table3(`userid`,`field1`,`field2`,`field3`, `createtime`,`createip`,`modifytime`,`modifyip`)

select a.userid,a.field1,a.field2,a.field3,now(),'127.0.0.1',now(),'127.0.0.1'

from tmp;

臨時錶用完之後要刪除,drop temporary table tmp;

MySQL 批量更新資料

最近做的乙個專案有這個乙個需求,就是記錄每個訊息的檢視數。規則是只要客戶端呼叫訊息列表,就把當前介面返回的資料對應的資料庫裡面的檢視欄位 1。做的是後端給前端一次返回20條資料,那麼就存在,後端需要一次跟新這20條記錄的檢視數。這就是設計到mysql的批量更新操作了。訊息表message idcon...

mysql批量更新資料

1.使用 on duplicate key update,該語句是如果存在就修改,如果不存在就插入.以下是兩種用法 insert into wx sms id values 10 11 12 on duplicate key update userid userid 100 insert into ...

mysql 批量更新 MySQL批量更新

我有2個表 mysql data details accounts invoices 理想情況下,每個data details都應具有accounts invoices id.data details有乙個帶有accounts invoices主鍵的外來鍵 由於某種原因,有data details記...