PHP批量添加数据
发布日期:2021-05-09 04:17:00 浏览次数:20 分类:博客文章

本文共 1308 字,大约阅读时间需要 4 分钟。

query( "SET NAMES ".DB_CHAR );ini_set("max_execution_time", "30");/** * 批量添加 方法1 * 使用insert into循环遍历添加 */for ( $i = 0; $i<2000000; $i++){ $sql = "INSERT INTO test_md5(`data`,`mda5_data`) VALUE (".$i.",'".md5($i)."')"; $sqli->query( $sql );}/** * 批量添加 方法2 * 使用事务提交,批量插入数据库(每隔10W条提交下) */$sqli->query( 'start transaction' );for( $i=0;$i<=2000000;$i++ ){ $sql = "INSERT INTO test_md5(`data`,`md5_data`) VALUE (".$i.",'".md5($i)."')"; // echo $i.'=>'.$sql.'
'; $sqli->query( $sql ); if($i%10000==0){ $sqli->query('commit transaction'); $sqli->query('begin'); }}$sqli->query('commit transaction'); /** * 批量添加 方法3 * 使用优化SQL语句,将SQL语句拼接使用 insert into table() values(),(),()然后一次性添加; */ ini_set("max_execution_time", "200000");echo $time_s = date("H:i:s",time())."
";$sql = "INSERT INTO test_md5(`data`,`md5_data`) VALUES ";for ( $i = 1 ; $i<2000000; $i++ ){ $data_md5 = md5($i); $sql .= "( ".$i.",'".$data_md5."'),";}$sql = substr( $sql,0, strlen($sql)-1 );// echo $sql;die();$sqli->query( $sql );echo $time_e = date("H:i:s",time())."
";// 15:45:38// 15:46:09// 不到一分钟执行完毕

 

 

 注意

 1:PHP的代码执行时间

 max_execution_time = 200000

 2:PHP每一次执行请求的内存空间

 memory_limit = 1G

 3:mysql接收的最大数据包

 max_allowed_packet = 1G

 

 最后总结下,在插入大批量数据时,

 第一种方法无疑是最差劲的,

 第二种方法在实际应用中就比较广泛,

 第三种方法在插入测试数据或者其他低要求时比较合适,速度确实快。

 

原文链接 

上一篇:PHP 下载中文乱码解决
下一篇:nginx 隐藏 index.php

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月05日 09时22分30秒