牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2016-11-14 投稿人: 浏览次数:1806
 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 "bb"";   
  13. fwrite($fhandler,$sql." ");   
  14. }   
  15. echo"写入成功,耗时:",mktime()-$t;   
  16. }   
  17. //注意字段不再以逗号分割,以 分割,条记录以 分割。  


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左右.


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。