PHP MySQL批量插入数据的优化方法
2014-12-02 16:58
323 查看
MySQL批量插入数据的优化方法,废话少说直接贴代码...
该方法的核心是对sql语句进行分割,提高效率;当数据量过大时,使用insert ... values的语句过长,就会出现MySQL server has gone away的错误; 这种情况可以通过修改max_allowed_packed的配置参数来避免,
mysql> show global variables like 'max_allowed_packet';
修改参数:mysql> set global max_allowed_packet=1024*1024*1024;
mysql> show global variables like 'max_allowed_packet';
<?php $link = mysql_connect('localhost', 'root', '') or die(mysql_error()); mysql_select_db('phone', $link) or die(mysql_error()); mysql_query("set names gbk"); $file=file('C:\Users\Administrator\Desktop\手机号段.txt'); $pagestartime=microtime();//开始执行前的时间 $sql="insert into number values";//对sql语句进行分割,是提高效率的关键 for($i=0;$i<count($file);$i++){ $arr=explode(',',$file[$i]); $sql.="('',$arr[1],$arr[2],$arr[3],$arr[4],$arr[5]),"; } $sql = rtrim($sql,','); //过滤字符串末端的逗号 $res=mysql_query($sql); if($res){ echo "信息插入成功<br/>"; }else{ echo "SQL执行失败<br/>"; } $pageendtime = microtime(); //执行完后的时间 $starttime = explode(" ",$pagestartime); $endtime = explode(" ",$pageendtime); $totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1]; $timecost = sprintf("%s",$totaltime); echo "<br/>"; echo "共用时:".$timecost."秒"; ?>
该方法的核心是对sql语句进行分割,提高效率;当数据量过大时,使用insert ... values的语句过长,就会出现MySQL server has gone away的错误; 这种情况可以通过修改max_allowed_packed的配置参数来避免,
mysql> show global variables like 'max_allowed_packet';
修改参数:mysql> set global max_allowed_packet=1024*1024*1024;
mysql> show global variables like 'max_allowed_packet';
相关文章推荐
- mysql 数据插入优化方法
- python向mySQL批量插入数据的方法
- hibernate批量数据插入优化 ------用Hibernate插入1万条数据,怎么做,有什么好的优化方法吗
- 用php实现在文件指定行插入数据的方法
- MySQL大批量数据插入,PHP之for不断插入时出现缓慢的解决方案及优化(转载)
- mysql 数据插入优化方法
- php向MySQL插入数据不全 解决方法
- php+mysqli实现批量执行插入、更新及删除数据的方法
- MySQL大批量数据插入,PHP之for不断插入时出现缓慢的解决方案及优化。
- mysql批量插入数据方法
- 插入关联表数据的优化方法(转)
- python使用MySQLdb向mySQL批量插入数据的方法
- PHP——向数据库插入数据时乱码的解决方法
- 插入关联表数据的优化方法
- MySQL批量插入数据的几种方法
- PHP插入数据到Mysql出现乱码的解决方法
- mysql批量插入数据方法
- php插入数据含有特殊符号的处理方法
- python使用MySQLdb向mySQL批量插入数据的方法
- php mysqli 一次插入10w条数据方法 uery(): MySQL server has gone away