實測45秒:
原理:mysql插入資料庫 插入時候並沒有提交到mysql表裡,在insert後面需要執行commit操作才會插入資料庫
默認mysql是自動提交,如果關閉自動提交,在insert幾十萬數據在進行commit那麼會大大縮短入庫時間
建表
用戶表
CREATE TABLE `user` ( `id` BIGINT (20), `name` VARCHAR(20) )ENGINE=INNODB;
ini_set('max_execution_time', '0'); //mysql執行時間 @mysql_pconnect("localhost","root","root") or die('connect failed'); @mysql_select_db("test") or die('select db failed'); //這一步很重要 取消mysql的自動提交 mysql_query('SET AUTOCOMMIT=0;'); mysql_query('set names utf8'); $begin = time(); $count = 1; for($i=1;$i<=1000000;$i++){ mysql_query("insert into user values($i,'name')"); //插入20W提交一次 if($i%200000=='0'){ $count++; mysql_query("insert into log values($i,$count)"); mysql_query("commit"); } } $end = time(); echo "用時 ".($end-$begin)." 秒 <hr/>";