zoukankan      html  css  js  c++  java
  • php+Mysql 大数据导入怎样提高效率?

    数据库数据同步,迁移等其他操作时,会涉及到数据的转移,插入操作。如果是千万级别的数据操作,那么怎样提高插入效率呢??可能有人会说,用load方法简单高效。是的,但是如果是不同数据库之间的同步插入该怎么解决呢??也许你有很高明的办法,也许你一无所措。这里演示一种常规操作方法,仅供参考。

    工具/原料

     
    • php开发运行环境;
    • 数据库系统;
    • 大数据资源。

    方法/步骤

     
    1. 1

      优化SQL插入语句;

      比如循环一条一条插入,改成链接多个值进行插入。

      将:

      foreach($re as $it){

      $sql="insert into table (id,name) values(".$it['id'].","."$it['name'].")";

      mysql_query($sql);

      }

      改为:

      $sql="insert into table (id,name) values";          

      foreach($re as $it){          

      $str=    "'".$it['id']."','".$it['name']."'";           

      }           

      $sql .= "(".$str."),";           

      $sql2 = substr($sql,0,-1);          

      mysql_query($sql);

      php+Mysql 大数据导入怎样提高效率?
    2. 2

      打开mysql的配置文件,my.ini文件,并找到:max_allowed_packet项;

      php+Mysql 大数据导入怎样提高效率?
    3. 3

      将值修改大一点,具体根据自己需要修改。比如这里修改为:1G。

      php+Mysql 大数据导入怎样提高效率?
    4. 4

      重启mysql服务;

      php+Mysql 大数据导入怎样提高效率?
    5. 5

      如果运行页面提示内存溢出,可将值设大一点。

      Allowed memory size of 134217728 bytes exhausted (tried to allocate 132907287 bytes)

      php+Mysql 大数据导入怎样提高效率?
    6. 6

      这样,面对千万数据导入的时候,比原来那种方法至少快好多倍。

      END
     
    经验内容仅供参考,如果您需
  • 相关阅读:
    攻防世界WEB新手区第一题
    攻防世界WEB新手区第四题
    12月14
    12月12
    12月13
    centos关机重启命令
    解决docker容器内没有ip addr | ifconfig | ping命令
    Docker + Redis5.0.9集群搭建,3主3从(分片 + 高可用 + 负载均衡)
    docker创建自定义网络,容器内部使用容器名相互ping通,配置不同网段互通
    docker常用命令
  • 原文地址:https://www.cnblogs.com/benpaodegegen/p/7365754.html
Copyright © 2011-2022 走看看