PHP批量新增資料

2022-05-01 08:18:08 字數 1555 閱讀 3739

<?php

//連線資料庫

header('content-type:text/html;charset=utf-8');

define('db_host','127.0.0.1');

define('db_user','root');

define('db_pass','root');

define('db_name','test');

define('db_port',3306);

define('db_char','utf8');

$sqli = new mysqli( db_host, db_user, db_pass, db_name,db_port);

$sqli->query( "set names ".db_char );

ini_set("max_execution_time", "30");/**

* 批量新增 方法1

* 使用insert into迴圈遍歷新增 */

for ( $i = 0; $i

<2000000; $i++)/**

* 批量新增 方法2

* 使用事務提交,批量插入資料庫(每隔10w條提交下) */

$sqli->query( 'start transaction');

for( $i=0;$i

<=2000000;$i++)

}$sqli->query('commit transaction');/**

* 批量新增 方法3

* 使用優化sql語句,將sql語句拼接使用 insert into table() values(),(),()然後一次性新增; */

ini_set("max_execution_time", "200000");

echo

$time_s = date("h:i:s",time())."

";$sql = "insert into test_md5(`data`,`md5_data`) values ";

for ( $i = 1 ; $i

<2000000; $i++)

$sql = substr( $sql,0, strlen($sql)-1);

//echo $sql;die();

$sqli->query( $sql

);echo

$time_e = date("h:i:s",time())."

";//

15:45:38

// 15:46:09

// 不到一分鐘執行完畢

注意1:php的**執行時間

max_execution_time = 200000

2:php每一次執行請求的記憶體空間

memory_limit = 1g

3:mysql接收的最大資料報

max_allowed_packet = 1g

最後總結下,在插入大批量資料時,

第一種方法無疑是最差勁的,

第二種方法在實際應用中就比較廣泛,

第三種方法在插入測試資料或者其他低要求時比較合適,速度確實快。

Sqlite批量新增資料

今天遇到了往sqlite資料庫裡插入1400多條資料的情況,結果每次都需要一兩分鐘才能完成.搜尋了一下,在這裡找到了解決辦法,所需要的時間直接變成不到2秒 internal static void fastinsertmany dbconnection cnn dbtrans.commit catc...

php批量新增資料與批量更新資料的實現方法

php如果要批量儲存資料我們只要使用sql的insert into語句就可能實現資料批量儲存了,如果是更新資料使用update set就可以完成更新了,操作方法都非常的簡單,下面整理兩個例子.批量資料錄入 設計方法 同時提交多條表單記錄,為每一條記錄設定相同的文字網域名稱稱,然後在表單處理頁中,通過...

大批量新增資料

這篇文章主要介紹了php大批量插入資料庫的3種方法和速度對比,3種方法分別使用普通insert語句 insert into語句和事務提交,需要的朋友可以參考下 第一種方法 使用insert into 插入,如下 params array value 50 set time limit 0 echo ...