往数据库插入上万条数据避免服务器崩溃

<?php
//mysql执行时间
ini_set(‘max_execution_time‘, ‘0‘);
ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort
//链接数据库:链接的服务器,拥有服务器进程的用户的名称,密码
$con[email protected]mysql_connect("localhost","root","root");
// 判断数据库是否连接
if(!$con){
    die(‘Could not connect:‘.mysql_error());
}
//mysql_select_db() 函数设置活动的 MySQL 数据库
mysql_select_db("5kcrm", $con);
//取消数据库的自动提交
mysql_query(‘SET AUTOCOMMIT=0;‘);
//在数据库设置了UTF8编码
mysql_query(‘set names utf8‘);
//获取当前时间
$begin = time();
function insertNew(){
    for($i=1;$i<=10000;$i++){
    //向数据表中插入数据
     mysql_query("insert into `test`(`name`, `birth`, `create_time`, `status`) values (‘lucky‘,‘20170724‘,now(),‘9‘)");
   //5000条数据提交一次数据库
    if($i%5000==‘0‘){
     mysql_query("commit");
    }
 }
}
//php中如何调用用户自定义函数
call_user_func(‘insertNew‘);
$end = time();
//计算总用时
echo "用时 ".($end-$begin)." 秒 <hr/>";
//关闭数据库连接
mysql_close();
?>

原文地址:https://www.cnblogs.com/shenchanglu/p/11337423.html

时间: 2024-10-17 04:34:50

往数据库插入上万条数据避免服务器崩溃的相关文章

java向数据库插入N条数据

为了测试mysql的索引,要向数据库先插入上万条数据,然后再测试.手动插入太麻烦,写了一段代码. 先上代码: package action; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class InsertData { public Con

向Oracle数据库插入一条数据

这几天搞了一下Oracle数据库,可能用sql server习惯了,感觉好不方便.PL的界面友好度比sql server差远了 ,既然都收购了PL了 为什么不给它做好一点呢?各种不便.郁闷 向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来.不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲突了,唯一的 'Cms', 'Cms 网站', 'Cms', 2 , 'CMS', '广告内容管理系统' ,

优化SQLite3数据库插入1000条数据

如果用普通的方式向数据库中插入10000条数据,会不会妨碍用户体验呢?答案是肯定会,那么如何优化我们的数据库的各种操作呢. (1)使用事务. String sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)"; SQLiteStatement stat = db.compileStatement(sql); db.beginTransaction(); for (S

Android数据库更新&mdash;&mdash;上万条数据的插入

在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚至可能造成整个应用的崩溃! 解决方案: 遇到这种情况,其解决方案应为,用做好的db文件替换之前的数据库文件.当然,有人可能有疑问,这样的话,怎么写入到data/data目录下.这个的确是个问题,可是,我们可以将该数据库存放在SD卡目录下.当然,数据库存放在SD卡目录中,的确是对安全性的妥协. 实现步

mysql 一次性插入上万条数据测试专用

无聊期间 记录下 mysql 一次性插入上万条数据 测试的时候可以用 首先 创建一个表 t3 create table t3(id int)ENGINE = MyISAM; \d //    表示吧mysql 的结束标志改成 //   默认情况下  mysql 的结束标志是 ; 这样 创建一个procedure  方法 最后end  //   表示结束 最后用 \d ;   吧mysql原生的结束符号; 换回来 我这里就不贴出来了. 使用命令 call p3; (呼叫p3 搬砖了 :-) ) 最

使用JDBC向数据库中插入一条数据

原谅我是初学者,这个方法写的很烂,以后不会改进,谢谢 /** * 通过JDBC向数据库中插入一条数据 1.Statement 用于执行SQL语句的对象 1.1 通过Connection 的 * createStatement() 方法来获取 1.2 通过executeUpdate(sql) 的方法来执行SQL 1.3 * 传入的SQL可以是INSERT/UPDATE/DELETE,但不能是SELECT * * 2.Connection和Statement使用后一定要记得关闭 需要在finally

数据库一次性插入10w条数据,怎么插入效率快

在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters). bulk方法主要思想是通过在客户端把数据都缓存在Table中,然后利用SqlBulkCopy一次性把Table中的数据插入到数据库 代码如下: public static void BulkToDB(DataTab

经过多次的测试,最终写出了access数据库一次插入多条数据

OleDbConnection inconn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=DB.mdb"); inconn.Open(); OleDbTransaction myTrans = inconn.BeginTransaction(); OleDbCommand incmd = inconn.CreateCommand(); incmd.Transaction = myTrans; s

插入数据库 每次1000条数据

$sql = "insert into `elconlist` (`ecgrouid`,`elcono`) VALUES"; for($i = 0; $i < $ecnum; $i++){ //拼装SQL if($i != $ecnum-1){ if((float)($i+1)%1000 != 0){ $sql .= "(".$ecgrouid.",'".$this->creatElcono($comid)."'),&quo