鍍金池/ 問(wèn)答/人工智能  PHP  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全/ php sql update追加更新大量數(shù)據(jù)超時(shí)無(wú)響應(yīng) 怎么解決

php sql update追加更新大量數(shù)據(jù)超時(shí)無(wú)響應(yīng) 怎么解決

UPDATE `addon` SET `productsimages`= concat(productsimages,'##','BD-PT4878-1.jpg'),`jieshao`=concat(jieshao,'##','Immunohistochemical analysis of paraffin-embedded human-stomach-cancer tissue. 1,VIM PolBD-PClonal Antibody was diluted at 1:200(4°,overnight). 2, Sodium citrate pH 6.0 was used for antigen retrieval(>98°C,20min). 3,Secondary antibody was diluted at 1:200(room temperature, 30min) Negtive control was used by secondary antibody only.)') WHERE typeid='190' AND catalogno='BD-PT4878';

catalogno不是索引
執(zhí)行如上語(yǔ)句,一共1W多條,無(wú)響應(yīng),
分兩次,一次5000條也還是無(wú)響應(yīng),
試過(guò)組合數(shù)組,然后foreach執(zhí)行,無(wú)響應(yīng)。
該怎么辦呢 - -

回答
編輯回答
故人嘆

大量更新業(yè)務(wù)操作是在一定情況下偶發(fā)還是經(jīng)常操作的

如果是偶發(fā)建議停業(yè)務(wù)操作

如果是經(jīng)常操作考慮業(yè)務(wù)上是否可以做及時(shí)處理或分發(fā)消息異步處理

上面的直接操作沒(méi)有時(shí)間限定,你可以起一個(gè)進(jìn)程,每隔一定時(shí)間處理一定的數(shù)量,比如1分鐘處理100個(gè)更新,然后sleep(10)迭代處理,

偽代碼

$limit = 0;
$offset = 100;
while(true) {
    $data = getLists($limit);
    // operate
    doit($data);
    sleep(10);
    // log
    $limit += $offset;
}
2018年3月24日 15:55
編輯回答
尐飯團(tuán)

如果可以的話,寫一個(gè)腳本,然后每次更新N條,再加一個(gè)contab定時(shí)任務(wù)去循環(huán)執(zhí)行你的腳本,直到所有update結(jié)束。

2018年8月30日 13:58
編輯回答
蟲児飛

程序里調(diào)用這個(gè)函數(shù)set_time_limit(0);
之后還是會(huì)超時(shí)無(wú)響應(yīng),但此時(shí)是nginx的超時(shí)處理,實(shí)際上你的php程序仍然在運(yùn)行的,你的數(shù)據(jù)該update還是會(huì)update,只是你不知道何時(shí)完成而已

2017年4月24日 21:11
編輯回答
蔚藍(lán)色

這個(gè)好解決,還是索引效率的問(wèn)題。

UPDATE `addon` SET `productsimages`= concat(productsimages,'##','BD-PT4878-1.jpg'),`jieshao`=concat(jieshao,'##','Immunohistochemical analysis of paraffin-embedded human-stomach-cancer tissue. 1,VIM PolBD-PClonal Antibody was diluted at 1:200(4°,overnight). 2, Sodium citrate pH 6.0 was used for antigen retrieval(>98°C,20min). 3,Secondary antibody was diluted at 1:200(room temperature, 30min) Negtive control was used by secondary antibody only.)') WHERE id in (select id from addon where typeid='190' AND catalogno='BD-PT4878');
2018年2月19日 18:00