<dl id="vorq8"><menu id="vorq8"></menu></dl>

<sup id="vorq8"></sup>
<sup id="vorq8"></sup>
<sup id="vorq8"></sup>

<optgroup id="vorq8"><address id="vorq8"></address></optgroup>

    <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

    <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

    当前位置:  首页  >  PHP教程  >  PHP 基础  >  基础教程

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

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

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

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

    代码如下

    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代码生成数据,再导入:

    代码如下

    $t=mktime();
    set_time_limit(1000);
    $myFile="e:/insert.sql";
    $fhandler=($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?#28304;?#30340;工具有?#27604;?#23454;不理想。

    吐了个 "CAO" !
    扫码关注 PHP1 官方微信号
    PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
    Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有
         
    pc蛋蛋
    <dl id="vorq8"><menu id="vorq8"></menu></dl>

    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>
    <sup id="vorq8"></sup>

    <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

      <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

      <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

      <dl id="vorq8"><menu id="vorq8"></menu></dl>

      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>
      <sup id="vorq8"></sup>

      <optgroup id="vorq8"><address id="vorq8"></address></optgroup>

        <sup id="vorq8"><menu id="vorq8"><small id="vorq8"></small></menu></sup>

        <div id="vorq8"><tr id="vorq8"><object id="vorq8"></object></tr></div>

        做什么小生意最赚钱 扑克打牌技巧必胜绝技 大神北京28官网预测 今天青海快3走势图 多乐彩基本走势 甘肃快三玩法图表 贵州11选5开奖查询 pk10一天开多少期 福利彩票深圳风采 七星彩17045期规律图 akk十三水设置 香港六彩特码资料 德州扑克headsup 如何破解彩票软件程序 买彩票的正规网站