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

  1. PHP 代码

[php]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?php   
  2. $t=mktime();   
  3. set_time_limit(1000);   
  4. $myFile="c:/insert.sql";   
  5. $fhandler=fopen($myFile,'wb');   
  6. if($fhandler){   
  7.   
  8. $i=0;   
  9. while($i<1000000)//1,0000,000   
  10. {   
  11. $i++;   
  12. $sql="$i\t'bb'";   
  13. fwrite($fhandler,$sql."\r\n");   
  14. }   
  15. echo"写入成功,耗时:",mktime()-$t;   
  16. }   
  17. //注意字段不再以逗号分割,以\t分割,条记录以\r\n分割。  


2.在MySQL中运行代码代码

[sql]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. LOAD DATA local INFILE 'c:/insert.sql' INTO TABLE `cache`(`id`, `name`);   

3.运行结果(12秒)

[sql]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [SQL] LOAD DATA local INFILE 'c:/insert.sql' INTO TABLE `cache`(`id`, `name`);  
  2. 受影响的行: 1000000  
  3. 时间: 12.855ms  
  4. 注意:在插入大数据之前先将表的主键、唯一健删除,不然每插入一条数据都会和之前的数据进行对比是否重复

               比如说之前有10W条数据、现在你需要再插入50W条数据,就是50Wx50W次重复检查。想想这样的话,数据

       越多检查就越多。

    数据新增完以后再进行设置主键、唯一健。

    自己测试过的结果。主键为UUID设置200W数据大概时间为20min左右.


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值