美文网首页
PHP+MySQL百万级数据插入数据库

PHP+MySQL百万级数据插入数据库

作者: myFamily329 | 来源:发表于2017-07-25 10:26 被阅读0次

说明:想要记录整理一下简单php脚本的学习内容,嘿嘿,虽然简单,但真的有学到东西。

  • 数据插入数据库

在开发过程中可以thinkphp框架有数据的ThinkPHP实现excel的批量导入功能,这种方法适用于运营过程中正式的数据导入,在开发过程是测试性能时,可以写一个简单的脚本批量大量插入虚拟数据。

写一个简单的php脚本,在此过程中的总结与学习到知识的查询。

  • 在phpMyAdmin中建立数据库test,建立数据表t_New字段主键id(设为自增),name,birth,create_time,status
  • 建立script.php文件 编写吧 先把整体附出!
<?php  
//mysql执行时间
ini_set('max_execution_time', '0');
ignore_user_abort(TRUE); //如果客户端断开连接,不会引起脚本abort
//链接数据库:链接的服务器,拥有服务器进程的用户的名称,密码
$con=mysql_connect("localhost","root","root");
// 判断数据库是否连接
if(!$con){
    die('Could not connect:'.mysql_error());
}
//mysql_select_db() 函数设置活动的 MySQL 数据库
mysql_select_db("test", $con);
//取消数据库的自动提交
mysql_query('SET AUTOCOMMIT=0;');   
//在数据库设置了UTF8编码
mysql_query('set names utf8'); 
//获取当前时间
$begin = time();  
function insertNew(){
    for($i=1;$i<=1000000;$i++){
    //向数据表中插入数据
     mysql_query("insert into `t_New`(`name`, `birth`, `create_time`, `status`) values ('lucky','20170724',now(),'9')");
   //2w条数据提交一次数据库
    if($i%20000=='0'){    
     mysql_query("commit");   
    }  
 }
}
//php中如何调用用户自定义函数
call_user_func('insertNew');
$end = time();   
//计算总用时
echo "用时 ".($end-$begin)." 秒 <hr/>"; 
//关闭数据库连接
mysql_close();  
?>  
  • 开始学习总结
    在编写程序写注释时,写了简单注释,但对知识点注释本人就单独记录下来了。
    • PHP ini_set用来设置php.ini的值,在函数执行的时候生效,脚本结束后,设置失效。无需打开php.ini文件,就能修改配置,对于虚拟空间来说,很方便。
      ini_set('max_execution_time', '0');

    • mysql插入数据库 插入时候并没有提交到mysql表里在insert后面需要执行commit操作才会插入数据库.默认mysql是自动提交,如果关闭自动提交,在insert几十万数据在进行commit那么会大大缩短入库时间。开始的时候关闭自动提交
      mysql_query('SET AUTOCOMMIT=0;');
      插入数据之后进行

//2w条数据提交一次数据库
    if($i%20000=='0'){    
     mysql_query("commit");   
    } 
  • 插入数据--时间存储
    在插入数据时遇到了时间的存储问题,在开始的时候使用time()存储发现,并无法存入时间,之后使用变量方式[$time=time;time()替换为$time],都无法成功
  mysql_query("insert into `t_New`(`name`, `birth`, `create_time`, `status`) values ('lucky','20170724',time(),'9')");

存储效果是


time()存储时间

之后使用now()可以正确存储

mysql_query("insert into `t_New`(`name`, `birth`, `create_time`, `status`) values ('lucky','20170724',now(),'9')");
now()存储时间
  • 删除数据问题
    在插入大量模拟数据后,那么删除这些大量数据的问题也是要解决的。删除数据时的where条件的书写格式问题应该是:
    where 数据中的字段名='字段'
mysql_query("delete from `t_New` where id ='$i' ");
  • php如何调用用户自定义函数的问题
    其实在可以不使用通过函数的方法进行插入数据,直接用发循环也是可以的,为了方便可以对多个数据表的操作,可以不同的数据表使用不同的函数,之后调用不同的函数就可以了。
    刚开始我以为php调用用户自定义函数与c语言等一样呢,但发现无法实现调用,之后查询资料,参考:解析php中如何调用用户自定义函数http://www.jb51.net/article/40337.htm
//php中如何调用用户自定义函数
call_user_func('insertNew');

还有不要在函数前加public,并不是在类中,写thinkphp习惯了,嘿嘿

开启Markdown编写模式,2017年7月25日 10:26
好好学习,天天向上,今天也是!

相关文章

  • PHP+MySQL百万级数据插入数据库

    说明:想要记录整理一下简单php脚本的学习内容,嘿嘿,虽然简单,但真的有学到东西。 数据插入数据库 在开发过程中可...

  • PHP+MySQL百万数据插入

    第一种方法:使用insert into 插入,代码如下: 最后显示为:23:25:05 01:32:05 也就是花...

  • mysql操作大批量的数据

    创建了4张视图 百万数据分页问题 这个语句参考:mysql百万级数据查询优化 百万级数据插入数据库 参考:快速导入...

  • MySql语法(4)—exists和in的区别(explain分

    首先在mysql数据库中新建两张表,并且插入数据。 MySql(准备)—mysql使用存储过程快速插入百万条数据 ...

  • 起步,实战百万级商品数据实时同步搜索系统

    百万级商品数据实时同步搜索系统主要面临以下几个难题: 商家数据库和商品数据库是多台不同的服务器,并且数据量达百万级...

  • 数据库插入百万级数据

    大家好,我是IT修真院北京分院第28期的学员曲艳行,一枚正直纯洁善良的java程序员 今天给大家分享一下,修真院官...

  • 数据库插入百万级数据

    大家好,我是IT修真院北京分院第28期的学员曲艳行,一枚正直纯洁善良的java程序员 今天给大家分享一下,修真院官...

  • SQL从一个表查询数据插入/更新到另一个表

    示例一:从数据库表A中查询出数据插入到数据库表B 从数据库DataBaseA的表TDA中查询出数据插入到数据库Da...

  • django中用原生sql查询

    问题:模块写完后数据库插入了近一百万条数据,结果orm的查询方法当然就拖不起,慢的一匹解决方法:先将数据库中经常查...

  • FMDB使用

    创建数据库 数据库文件路径 创建表 增删改查操作 插入数据 插入模型数组 插入字典类型数据,存入的日期保存下来。 ...

网友评论

      本文标题:PHP+MySQL百万级数据插入数据库

      本文链接:https://www.haomeiwen.com/subject/vbxwkxtx.html