我從數組中解析了數以千計的數據。我的關注點是我的腳本的處理時間,它是否會影響我的腳本的處理時間,因爲我有十萬條記錄被插入到數據庫中?我有一種方法可以批量處理數據到數據庫的插入嗎?使用PHP批量處理數組使用PHP
0
A
回答
0
這是SQL文件 - 但是你可以按照它的模式(如果不只是用它) -
它的文件分割成可以指定零件,說3000行,然後將它們插入一個定時間隔< 1秒到1分鐘或更多。
這樣一個大文件被破碎成較小的插入件等
這將有助於旁路編輯PHP服務器配置和擔心內存限制等。如腳本的執行時間等。
新用戶無法插入鏈接,以便谷歌搜索「SQL自卸大」或者,如果這個工程轉到: WWW [點]奧澤羅夫[點]去[斜槓] bigdump [點] PHP
,所以你可以即使在理論上修改上述腳本以接受您的數組作爲數據源而不是SQl文件。這顯然需要一些修改。
希望它有幫助。 -R
0
它不太可能會影響處理時間,但您需要確保數據庫的事務日誌足夠大,以便爲100k行構建回滾段。
1
語法是:
INSERT INTO tablename (fld1, fld2) VALUES (val1, val2), (val3, val4)... ;
所以,你可以寫不便。像這樣的(虛擬的例子):
foreach ($data AS $key=>$value)
{
$data[$key] = "($value[0], $value[1])";
}
$query = "INSERT INTO tablename (fld1, fld2) VALUES ".implode(',', $data);
這個工程上巨大的數據集相當快的事件,而不用擔心性能,如果你的數據集裝入內存。
0
或者與ADOdb中包裝(http://adodb.sourceforge.net/):
// assuming you have your data in a form like this:
$params = array(
array("key1","val1"),
array("key2","val2"),
array("key3","val3"),
// etc...
);
// you can do this:
$sql = "INSERT INTO `tablename` (`key`,`val`) VALUES (?, ?)";
$db->Execute($sql, $params);
0
你有沒有想過array_chunk?它在另一個項目中爲我工作 http://www.php.net/manual/en/function.array-chunk.php
相關問題
- 1. 使用php批量循環使用php
- 2. 使用php運行批處理文件
- 3. 使用jQuery中的PHP數組處理
- 4. 使用PHP批量插入
- 5. 由變量批處理數組調用
- 6. php java批處理
- 7. 使用批處理
- 8. 使用批處理
- 9. 使用批處理
- 10. 使用批處理
- 11. 使用PHP預處理一個漂亮的顯示數組使用PHP
- 12. 使用Vertx JDBC處理程序批量插入數組
- 13. 處理數組PHP
- 14. 使用PHP處理XML
- 15. xml使用php處理(simplexml?)
- 16. PHP批量處理解決方案
- 17. 處理批量使用asp.net網頁API
- 18. 使用PHP處理KML數據
- 19. 使用PHP處理表單數據
- 20. 使用PHP數組
- 21. 批處理圖像處理cronjob在php
- 22. 使用PHP的FQL批量請求
- 23. 使用MySQL更新批量項目PHP
- 24. 使用php將圖像批處理文件夾變成灰度
- 25. 在批處理文件中使用PHP -W標誌
- 26. 使用PHP exec命令執行批處理文件的問題
- 27. 如何使用批處理
- 28. 複製使用批處理
- 29. 如何使用批處理
- 30. 使用批處理文件
感謝大家的建議!我真的很感激它,我會嘗試使代碼與大轉儲相同的概念或只是修改它.. 再次感謝! – text 2009-05-29 15:05:03