百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql中百万级数据插入速度测试
分享文章到:

mysql中百万级数据插入速度测试

发布时间:01/15 来源: 浏览: 关键词:
100W的数据对于很多朋友来说算小菜了,但今天我就想到创建一个大量数据的测试环境,于是找了一下怎么插入100W条数据,我用的是20个字段。对比一下,首先是用 mysql 的存储过程弄的

100W的数据对于很多朋友来说算小菜了,但今天我就想到创建一个大量数据的测试环境,于是找了一下怎么插入100W条数据,我用的是20个字段。对比一下,首先是用 mysql 的存储过程弄的:

 代码如下

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;
 

结果我们看了用了58分钟,这也太费时差了吧

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="268t2t'0,262,268,'t0t '2342't'423423't'123123't'23423423't'2012-01-09 09:55:43't'upload/product/20111205153432_53211.jpg't'upload/product/thumb_20111205153432_53211.jpg'tNULLtNULLt38t'件't''t123t123t0";
    $i=0;
    while($i<1000000)//1,000,000
    {
        $i++;
        fwrite($fhandler,$sql."rn");
    }
    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`);


结果不到1分钟,100万的数据就快速的导入了,

注意字段不再以逗号分割,以t分割,条记录以rn分割。结果我插入10次数据,100W平均只要1分钟搞定。

总结,在大数据量处理时我们最好利用第三方插件一实现数据备份或直接在服务器上进行备份,用mysql自带的工具有时确实不理想。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有10人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板