我試圖插入多個記錄使用單個MySQL查詢,但我不想一次插入大量的記錄。如何使用mysql和php執行批處理操作
下面的代碼獲取,buildes並插入記錄
if(is_array($id_rec)){
$values = "";
foreach($id_rec as $key=>$value){
$values .= "(".(int)$value.",".(int)$id_group."), ";
}
$values = rtrim($values,", ");
$sql = "INSERT IGNORE INTO fu_rec_group_link (id_rec, id_group) VALUES ".$values;
$GLOBALS['db']->execute($sql);
我這裏有兩個問題。
- 第一個問題: 我應該一次插入多少條記錄?什麼是適量?
- 第二個問題: 如何在達到記錄的最大限制後暫停/斷開循環並插入記錄,然後繼續離開我?
任何幫助將不勝感激。
限制取決於您的服務器。詢問你的提供者。要在一段時間後繼續運行 - 試試'sleep()':http://php.net/manual/en/function.sleep.php – Qrzysio
如果你可以通過命令行運行你的腳本,這是一個典型的commanline-job。否則,你可以使用ajax來執行分步查詢 – fusion3k
@Qrzysio我正在談論限制記錄一次插入而不是時間限制。我不認爲你明白我想解釋什麼,可能是我沒有解釋清楚。但是,我試圖一次插入1000條記錄,並且如果記錄超過1000個記錄,則使用另一個插入查詢繼續記錄其餘記錄。 – Shaonline