php插入大数据_php 插入数据会一次插入两条相同的数据 - CSDN
  • 1.php代码 <?php $t=mktime(); set_time_limit(1000); $myFile="c:/insert.sql"; $fhandler=fopen($myFile,'wb'); if($fhandler){ $i=0; while($i)//1,0000,000 { $i++; $sql="$i\t'bb'"; fwrite

    1.php代码

    <?php 
    $t=mktime(); 
    set_time_limit(1000); 
    $myFile="c:/insert.sql"; 
    $fhandler=fopen($myFile,'wb'); 
    if($fhandler){ 
    
    $i=0; 
    while($i<1000000)//1,0000,000 
    { 
    $i++; 
    $sql="$i\t'bb'"; 
    fwrite($fhandler,$sql."\r\n"); 
    } 
    echo"写入成功,耗时:",mktime()-$t; 
    } 
    //注意字段不再以逗号分割,以\t分割,条记录以\r\n分割。


    2.在mysql中运行代码代码

    LOAD DATA local INFILE 'c:/insert.sql' INTO TABLE `cache`(`id`, `name`); 

    3.运行结果(12秒)

    [SQL] LOAD DATA local INFILE 'c:/insert.sql' INTO TABLE `cache`(`id`, `name`);
    受影响的行: 1000000
    时间: 12.855ms


    注意:在插入大数据之前先将表的主键、唯一健删除,不然每插入一条数据都会和之前的数据进行对比是否重复

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

       越多检查就越多。

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

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

    展开全文
  • PHP 插入大数据优化

    2019-06-16 05:04:57
    2019独角兽企业重金招聘Python工程师标准>>> ...
        /*public function index()
        {
            set_time_limit(0);
    
            $time1 = microtime(true);
    
            for ($i=200001; $i<300000; $i++) {
    
                $sql = "insert into think_test(name) values ($i)";
                Db::query($sql);
    
            }
    
            $time2 = microtime(true);
    
            echo $time1-$time2; //42.355000019073s
        }*/
    
        public function index()
        {
            set_time_limit(0);
    
            $time1 = microtime(true);
    
            $sql = "insert into think_test(name) values ";
            for ($i=0; $i<1000000; $i++) {
    
                $sql .= "($i),";
            } //insert into think_test(name) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),
    
            //insert into think_test(name) values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)
            $sql = substr($sql, 0, -1);
    
            Db::query($sql);
    
            $time2 = microtime(true);
    
            echo $time2-$time1; //5s
        }
    
        /**
         *
         * @DESC: 循环插入1000000 条数据 只需要5s左右 批量插入
         *
         * @author: HX
         * @Time: 2018/9/26   12:00
         *
         */
        public function index2()
        {
            set_time_limit(0);
    
            $time1 = microtime(true);
    
            //循环插入一百万
            for ($i=10000; $i <10010000 ; $i+=10000) {
                # code...
                $j = $i-10000;
                $sql = "insert into think_test(name) values ";
                for ($y=$j; $y<$i; $y++) {
    
                    $sql .= "($y),";
                }
                $sql = substr($sql, 0, -1);
    
                Db::query($sql);
                unset($sql);
            }
    
            $time2 = microtime(true);
    
            echo $time2-$time1;
        }

     

    转载于:https://my.oschina.net/u/2494575/blog/2221367

    展开全文
  • 今天,在项目中碰到了,需要把大量数据插入到mysql数据库中,把方法给大家分享一下: 程序在数据插入环节消耗了大量的资源,导致运行时间超时,解决方法mysql一条SQL语句插入多条数据。 代码如下: INSERT ...

    今天,在项目中碰到了,需要把大量数据插入到mysql数据库中,发现程序在数据插入环节消耗了大量的资源,导致运行时间超时。

    解决方法:mysql批量出入数据(一条SQL语句插入多条数据)

    代码如下:

    INSERT INTO users(name, age)  VALUES(‘php’, 25), (‘mysql’, 50), (‘大数据量’, 600);

    向users表中连续插入了3条记录。值得注意的是,上面的INSERT语句中的VALUES后必须每一条记录的值放到一对(…)中,中间使用”,”分割。

    在插入环节这样操作后,执行时间缩短了很多。

    展开全文
  • 1. 上传大文件 /* 以1.5M/秒的速度写入文件,防止一次过写入文件过大导致服务器出错(chy/20150327) */ $is_large_file = false; if( strlen($xml_str)>=2097152 ){ //当文件大于2M ... ...

    1. 上传大文件

            /* 以1.5M/秒的速度写入文件,防止一次过写入文件过大导致服务器出错(chy/20150327) */
            $is_large_file = false;
            if( strlen($xml_str)>=2097152 ){ //当文件大于2M
                $is_large_file = true;
                
                fwrite($fp, $pre, strlen($pre)); //写入头部
                $start = 0;
                while( $content=mb_strcut($xml_str,$start,1572864) ){
                    $start = $start + 1572864;
                    $writeResult = fwrite($fp, $content, strlen($content));
                    if( !$writeResult ){
                        unlink($filename);
                        break;
                    }
                    sleep(1);
                    unset($content);
                }
                unset($xml_str);
                fwrite($fp, $end, strlen($end)); //写入尾部
            }else{
                $content = $pre.$xml_str.$end;
                fwrite($fp, $content, strlen($content));
            }

     

    2. 处理大数据的加密

        //aes加密
        public function aesEncode_large($info) {
            //.....(省略部分代码)

        if(mcrypt_generic_init($cipher, $this->aesKey, $this->aesIv) != -1){ //$cipherText = mcrypt_generic($cipher, $beianInfo); //原普通的加密方式(chy/20150327) //处理大字符串加密。temp.text主要用于文件缓存(chy/20150327) $filename = B_ROOT."/admin/temp/temp.txt"; file_put_contents($filename,''); //将文件清空 $fp = fopen($filename, 'wb'); while( $content=mb_strcut($info,$start,104800) ){ $start = $start + 104800; $cipherTextCut = mcrypt_generic($cipher, $content); fwrite($fp, $cipherTextCut, strlen($cipherTextCut)); unset($cipherTextCut); unset($content); } mcrypt_generic_deinit($cipher); mcrypt_module_close($cipher); fclose($fp); return true; } else { return false; } }

     

    转载于:https://www.cnblogs.com/chy1000/p/4372566.html

    展开全文
  • 使用 PHP 往里面不停地以每次插入 10000 个文档,一共需要插入 1E 左右个文档。 在插入中,2 个 SECONDARY 全部状态为 Recovering,错误信息:”errmsg” : “error RS102 too stale to catch up”
  • 直接在命令行运行php (设置php最大运行时间为0, 设置php执行内存为-1) max_execution_time = 0 php内存占用 ­1为不限 memory_limit = -1 mysql 内存执行 max_allowed_packet = 10000M ...
  • <p>when i run insert query through php if the data which is going to store in bcontent is small (2-3 lines paragraph) then that query runs successfully but when the size of that data is increases (10-...
  • 因为框架对速度的极大影响,所以这里进行大数据插入的时候,将使用原生代码进行,尽量避免其他因素对数据插入的影响。代码:百万数据结果:生产第1批20000条数据耗时:0.001秒 InnoDB第1批插入20000条数据耗时0.183...
  • 数据库数据同步,迁移等其他操作时,会涉及到数据的转移,插入操作。如果是千万级别的数据操作,那么怎样提高插入效率呢??可能有人会说,用load方法简单高效。是的,但是如果是不同数据库之间的同步插入该怎么解决...
  • 本文讲的是mysql大数据分库和分表 php解决方案。 mysql分库分表方案、mysql 分库方案、php实现mysql分库分表、mysql高并发解决方案。
  • PHP插入百万数据教程目录介绍新建数据库和表修改数据库配置编写代码查看效果总结 目录 介绍 在实际开发中,尤其是电商,会遇到插入百万数据这个问题,要是用for循环一条一条插入会很浪费数据库资源和效率很低,博主在...
  • 第一种方法:使用insert into 插入,代码如下: 1 2 3 4 5 6 7 $params=array(‘value'=>'50′); set_time_limit(0); echodate(“H:i:s”); for($i=0;$i<...
  • 1.PHP代码 [php] view plain copy   $t=mktime();  set_time_limit(1000);  $myFile="c:/insert.sql";  $fhandler=fopen($myFile,'wb');  if($fhandler){    $i=0; 
  • Mongodb大数据语法大全

    2017-12-12 19:57:16
    JSON和MONGODB JSON不止是一种交换数据的方式,也是一种存储数据的良好方式,实际上MONGODB并未使用JSON存储数据,而是使用由MONGODB团队开发的一种称为BSON的开放数据格式。 面向文档存储BSON ...
  • 最近有项目,数据量在不断的上升级,数据量突破百万后,一条简单的插入,mysql数据库的cpu占用率都达到100%,于是整个系统被卡住,从而造成系统死机. 这个问题,查了发现是mysql数据库使用简单的数据引擎:Myisam造成. 这个...
  • 今天服务器突然出现接收不到数据 ,拿curl写了个测试脚本,...开始调试,打开了php的错误日志,并没有发现任何错误信息,检查了下php的post的相关配置,配得都挺高也没有任何问题。 继续往下找原因,查看nginx的错误日
  • 在工作中遇到了需要大批量的更新同步数据,首先用了个笨方法测试,那就是for循环插入与更新。由于数据是从另外一个大型网站的接口中获取的,我本地需要进行处理后,再进行更新与判断,程序执行完成之后,发现耗时太...
  • 插入大数据

    2013-04-21 11:58:06
    -- 优化代码之前的 insert into table(mobile) values (138000000);insert into table(mobile) values (138000000); insert into table(mobile) values (138000000);…… -- 优化之后的 insert into table(mobile) ...
  • 1.使用insert into插入  ini_set('max_execution_time','0');//限制超时时间,因为第一种时间较长,索性设为0不限制  $pdo = new PDO("mysql:host=localhost;dbname=oradt_cloud1520","root","123456");  for($...
  • Mysql插入大数据

    2019-11-19 10:45:53
    <p>for now im trying to optimize some codes.. <p>What is a better way to insert a large data into table? <p>Consider this code is running....<pre><code>$arrayOfdata = execute query (SELECT c.id ...
1 2 3 4 5 ... 20
收藏数 5,568
精华内容 2,227
关键字:

php插入大数据