[SQLite][MYSQL][PHP] 如何在迴圈 快速新增多筆資料 (fast multi insert) (使用Transaction交易模式,多筆query一次commit)
SQLite 有支援一次多筆insert的語法,但時候我們受限於PHP程式而必需在迴圈中一筆一筆的執行 SQL 的 insert,少量資料這樣做是OK的,但當資料筆數過多(例如超過一萬筆),就必需使用一個小技巧,方法很簡單...
$pdo->exec("INSERT INTO ...");
}
$pdo->beginTransaction();
foreach ($arr as $v) {$pdo->exec("INSERT INTO ...");
}
$pdo->beginTransaction();
使用Transaction交易模式,多筆query一次commit,只要加上兩行程式,就可以讓 insert 的時間縮短好幾倍喔。
備註:這個方法也可以同時套用在 MYSQL 上,只是要注意儲存引擎不可以是"MyISAM",因為它不支援交易模式。
備註:這個方法也可以同時套用在 MYSQL 上,只是要注意儲存引擎不可以是"MyISAM",因為它不支援交易模式。