php操作mysql,教你如何在1分鐘內插入百萬數據

實測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/>";  

You May Also Like