问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql快速插入百万级测试数据,最好的方式是什么?

发布网友 发布时间:2022-04-30 22:43

我来回答

2个回答

懂视网 时间:2022-05-01 03:05

代码如下:
mysql>delimiter $ 
mysql>SET AUTOCOMMIT = 0$$ 
mysql> create procedure test() 
begin 
declare i decimal (10) default 0 ; 
dd:loop 
INSERT INTO `million` (`categ_id`, `categ_fid`, `SortPath`, `address`, `p_identifier`, `pro_specification`, `name`, `add_date`, `picture_url`, `thumb_url`, `is_display_front`, `create_html_time`, `hit`, `buy_sum`, `athor`, `templete _style`, `is_hot`, `is_new`, `is_best`) VALUES 
(268, 2, ‘0,262,268,‘, 0, ‘2342‘, ‘423423‘, ‘123123‘, ‘2012-01-09 09:55:43‘, ‘upload/product/20111205153432_53211.jpg‘, ‘upload/product/thumb_20111205153432_53211.jpg‘, 1, 0, 0, 0, ‘admin‘, ‘0‘, 0, 0, 0); 
commit; 
set i = i+1; 
if i= 1000000 then leave dd; 
end if; 
end loop dd ; 
end;$ 
mysql>delimiter ; 
mysql> call test; 


结果 
mysql> call test; Query OK, 0 rows affected (58 min 30.83 sec) 
非常耗时。 
于是我又找了一个方法 
先用PHP代码生成数据,再导入: 

复制代码代码如下:
<?php 
$t=mktime(); 
set_time_limit(1000); 
$myFile="e:/insert.sql"; 
$fhandler=fopen($myFile,‘wb‘); 
if($fhandler){ 
$sql="268 2 ‘0,262,268,‘ 0 ‘2342‘ ‘423423‘ ‘123123‘ ‘23423423‘ ‘2012-01-09 09:55:43‘ ‘upload/product/20111205153432_53211.jpg‘ ‘upload/product/thumb_20111205153432_53211.jpg‘ NULL NULL 38 ‘件‘ ‘‘ 123 123 0"; 
$i=0; 
while($i<1000000)//1,000,000 

$i++; 
fwrite($fhandler,$sql." "); 

echo"写入成功,耗时:",mktime()-$t; 


然后再导入 

复制代码代码如下:
LOAD DATA local INFILE ‘e:/insert.sql‘ INTO TABLE tenmillion(`categ_id`, `categ_fid`, `SortPath`, `address`, `p_identifier`, `pro_specification`, `name`, `description`, `add_date`, `picture_url`, `thumb_url`, `shop_url`, `shop_thumb_url`, `brand_id`, `unit`, `square_meters_unit`, `market_price`, `true_price`, `square_meters_price`); 


注意字段不再以逗号分割,以 分割,条记录以 分割。结果我插入10次数据,100W平均只要1分钟搞定。 
第二种方式mysql中间省略了很多中间步骤,导致插入速度远胜于第一种,具体的没有研究。 

快速生成mysql上百万条测试数据
由于测试需要,原表中只有1万条数据,现在随机复制插入记录,快速达到100万条。 

itemid是主键。 

运行几次下面代码。随机取1000条插入, 

insert into downitems (chid,catid,softid,....) 
SELECT chid,catid,softid... FROM `downitems` WHERE itemid >= (SELECT floor(RAND() * (SELECT MAX(itemid) FROM `downitems`))) ORDER BY itemid LIMIT 1000; 

然后可以修改1000的数字了。改为5000或者1万。很快可以达到100万的数据量了。

 

转自:http://www.jb51.net/article/30099.htm

 

 

 只是插入随机的百万条数据?如果是这种就使用存储过程,相关例子看这里:http://fc-lamp.blog.163.com/blog/static/17456668720108305520576/

如果是从外部导入大数据文件,那么可以尝试使用LOAD DATA INFILE ,参看:http://fc-lamp.blog.163.com/blog/static/17456668720121021104916483/

或者参看官网:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html#insert-speed

mysql中迅速插入百万条测试数据的方法

标签:

热心网友 时间:2022-05-01 00:13

快速插入:
insert into test select * from test;
多次执行,瞬间能达到百万级的插入量
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 男朋友的手机应该怎么查呢? 如何检查你男票的手机? 男朋友的手机怎么查? 索尼耳机MDR-1ABT在低频表现力方面怎样? 怎么样正确的去查男朋友的手机,你知道吗? 索尼耳机MDR-1ABT是否可以指尖触控,来控制音乐的播放? 索尼耳机MDR-1ABT外观设计上有什么特点? 被别人诬陷找不到证据怎么办 传艺科技(002866)怎么涨停了 被诬告了怎么去法院报案? 被人诬陷了!怎么办啊???很迷茫…… 吉林传艺科技有限公司怎么样? 被人诬告了,我该怎么办 学校分配了一工作,工作地点是,江苏扬州的传艺科技公司,不知道那公司怎么样,求各位评论下 合肥传艺科技有限公司怎么样? 被别人诽谤,该怎么办? 江苏传艺科技股份有限公司怎么样? 遭人陷害怎么办? 被别人诬告会怎么办,法律怎么规定的? 需要一直妖股,大家觉得传艺怎么样 请问,索尼MDR-1ABT和森海塞尔 HD 4.50BTNC耳机对比哪个好 你喜欢检查你男友的手机吗?为什么? 索尼mdr-1abt头戴式耳机音质怎么样 索尼MDR-1ABT和BOSEQuietComfort QC35有什么区别 森海塞尔 momentum,索尼mdr-1abt 与铁三角 ath-msr7bk 哪个最好 索尼耳机mdr 1abt怎么用 解冻不了,人脸识别不通过怎么办? 昨天刚入手了一个索尼mdr-1abt,请问这个耳机怎么样,怎么煲机呢,知道的大神指导下,跪谢!!! 索尼MDR-1ABT和索尼MDR-100ABN哪个好 ...Windows未能启动原因可能是最近更改了硬件或软件。怎么办?_百度知 ... “小说推广软文”是什么?该怎么写? 索尼耳机MDR1ABT怎么煲机,新手求指教 akgk701和索尼MDR — 1ABT哪个好 索尼的MDR-1ABT和MDR-ZX770BN两个耳机音质哪个好??用过的来回答!! ...未能启动。原因可能是最近更改了硬件或软件? 索尼mdr1abt 的nfc功能怎么使用? 新小说如何推广? LDAC是否是蓝牙耳机最高质量的音频传输,sony&#47;索尼 MDR-1ABT是蓝牙耳机中音质最高的啦 如何通过国外广告联盟日赚100万 ...Windows未能启动,原因可能是最近更改了硬件或软件。解决此问题的步骤...