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
 
经验内容仅供参考,如果您需

posted on 2017-08-15 16:20  奔跑的葛根  阅读(845)  评论(0编辑  收藏  举报

导航