select * frompersons
p
– 批量插入
insert intopersons
values(『bx9』,『z』,『上海』,『松江』,『2』)
,(『bx1』,『z』,『上海』,『松江』,『2』)
,(『bx2』,『z』,『上海』,『松江』,『2』)
,(『bx3』,『z』,『上海』,『松江』,『2』)
,(『bx4』,『z』,『上海』,『松江』,『2』)
,(『bx5』,『z』,『上海』,『松江』,『2』)
,(『bx6』,『z』,『上海』,『松江』,『2』)
,(『bx7』,『z』,『上海』,『松江』,『2』)
,(『bx8』,『z』,『上海』,『松江』,『2』);
– 批量修改
第一種方法:使用insert into 插入,**如下:
**如下
p ar
ams=
arra
y(′v
alue
′=
>′5
0′);
sett
imel
imit
(0);
echo
date
("h:
i:s"
);fo
r(
params = array('value'=>'50'); set_time_limit(0); echo date("h:i:s"); for(
params
=arr
ay(′
valu
e′=>′5
0′);
sett
ime
lim
it(0
);ec
hoda
te("
h:i:
s");
for(
i=0;i
<
2000000
;i<2000000;
i<20
0000
0;i++);
echo date(「h:i:s」);
最後顯示為:23:25:05 01:32:05 也就是花了2個小時多!
第二種方法:使用事務提交,批量插入資料庫(每隔10w條提交下)最後顯示消耗的時間為:22:56:13 23:04:00 ,一共8分13秒 ,**如下:
**如下
echo date(「h:i:s」);
$connect_mysql->query(『begin』);
p ar
ams=
arra
y(′v
alue
′=
>′5
0′);
for(
params = array('value'=>'50'); for(
params
=arr
ay(′
valu
e′=>′5
0′);
for(
i=0;i
<
2000000
;i<2000000;
i<20
0000
0;i++)
}$connect_mysql->query(『commit』);
echo date(「h:i:s」);
第三種方法:使用優化sql語句:將sql語句進行拼接,使用 insert into table () values (),(),(),()然後再一次性插入,如果字串太長,
則需要配置下mysql,在mysql 命令列中執行 :set global max_allowed_packet = 210241024*10;消耗時間為:11:24:06 11:25:06;
插入200w條測試資料僅僅用了1分鐘!**如下:
**如下
s ql
="in
sert
into
twen
tymi
llio
n(va
lue)
valu
es";
for(
sql= "insert into twenty_million (value) values"; for(
sql="i
nser
tint
otwe
ntym
ill
ion(
valu
e)va
lues
";fo
r(i=0;i
<
2000000
;i<2000000;
i<20
0000
0;i++);
s ql
=sub
str(
sql = substr(
sql=su
bstr
(sql,0,strlen($sql)-1);
c on
nect
mysq
l−
>qu
ery(
connect_mysql->query(
connec
tmy
sql−
>qu
ery(
sql);
批量插入SQL
sql語句是有長度限制,在進行資料合併在同一sql中務必不能超過sql長度限制,通過max allowed packet配置可以修改,預設是1m,測試時修改為8m。事務需要控制大小,事務太大可能會影響執行的效率。mysql有 innodb log buffer size 配置項,超過這個值會把inn...
sql批量插入
批量插入 第一種 insert into mytable id,name values 1,123 insert into mytable id,name values 2,456 insert into mytable id,name values 3,789 第二種方法,使用union all來...
sql 批量插入測試資料
declare istart int declare iend int declare i int declare icount int set istart 1 set iend 100000 set i istart while i iend begin insert into websites...