鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ 怎么樣快速更新大量數(shù)據(jù)

怎么樣快速更新大量數(shù)據(jù)

假如有一張sku表,有數(shù)據(jù)10w或更多,怎么樣能夠快速?gòu)牡诙€(gè)數(shù)據(jù)庫(kù)獲取庫(kù)存來(lái)更新sku的庫(kù)存數(shù)據(jù)?

回答
編輯回答
愚念

如果你的庫(kù)2就沒(méi)有sku表,可以通過(guò)mysqldump命令來(lái)把庫(kù)1中的sku表導(dǎo)出到文件,再把這個(gè)文件中的數(shù)據(jù)導(dǎo)入到庫(kù)2中即可:

$ mysqldump -uroot -proot --databases db1 --tables sku  >/tmp/sku.sql
$ mysql -uroot -proot db2 < /tmp/sku.sql

如果你庫(kù)2本身也有sku表,只是想將庫(kù)1中庫(kù)2沒(méi)有的數(shù)據(jù)更新到庫(kù)2,那么首先你得通過(guò)insert ... select語(yǔ)句來(lái)操作,需要注意,語(yǔ)句最好不要一次性插入10w數(shù)據(jù),最好按一定條件分開(kāi),比如id,因?yàn)閙ysql內(nèi)部有一定限制:

INSERT INTO db2.sku
SELECT * FROM db1.sku
where 
(db1.sku.id between 1 and 10000)
and (db2.sku沒(méi)有這條數(shù)據(jù));

INSERT INTO db2.sku
SELECT * FROM db1.sku
where 
(db1.sku.id between 10001 and 20000)
and (db2.sku沒(méi)有這條數(shù)據(jù));

希望能幫助到你。

2017年4月8日 16:23