MySQL+PHP大文件读取和写库

简介: mysql+php 数据库存储大文件

大文件内容写入数据库

问题和困难

1.文件太大,数据不能一次读取

2.数据存在冗余,所以不能单纯的插入操作

解决

1.按行读取文件,计数累加,超过10000万行进行写库操作

while ($str = fgetcsv($file)) { //每次读取CSV里面的一行内容
    $str = explode("    ",$str[0]);
    $insert_data[] = array(
        'phone' => $str[0],
        'type' => $str[2],
        'number' => $str[3],
    );
    $time++;
    if ($time > 10000) {
        $value = "";
        $time = 0;
        foreach ($insert_data as $key => $item) {
            $value .= "(" . join(",",$item) ."),";
        }
        $value = trim($value,',');
        // var_dump($value);die;
        save($value,$mysqli);
        // die;
    }
}

2.写数据库操作,自动根据数据库内容进行选择插入还是修改操作

INSERT INTO table (fild)  VALUES $value ON DUPLICATE KEY UPDATE number=number+VALUES(number)

如果主键存在,则更新,如不存在则执行插入操作,更新时将本次数据与原有数据相加保存

其中,向MySQL写入大量数据时,可以考虑采用PDO模式

ini_set('max_execution_time','0');
$pdo = new PDO("mysql:host=localhost;dbname=oradt_cloud1520","root","123456");

$sql = "insert into  scan_card_picture (uuid,account_id,handle_state,created_time,status,from_account,accuracy,ifupdate) values";

for($i=0; $i<100000; $i++){
  $str = strrand(32);
  $sql .="('".$str."','07:55:10','active','admin@qq.com','90',1),";
 }
$sql = substr($sql,0,strlen($sql)-1);
var_dump($sql);
if($pdo -> exec($sql)){
  echo "插入成功!";
  echo $pdo -> lastinsertid();
}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
1103 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
3026 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
1606 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
578 0
PHP和Mysql前后端交互效果实现
|
JavaScript Linux PHP
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
405 3
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
770 17
|
PHP
基于PHP开发的资源库系统源码
基于PHP开发的资源库系统源码
373 13
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
585 18
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
616 25
|
Linux PHP iOS开发
PHP-Raylib 视 频 游 戏 编 程 库
php-raylib 是基于 PHP-FFI 绑定的 raylib-v5.5 游戏开发库,让 PHP 开发者轻松实现视频游戏编程。相比仅支持 4.+ 版本的原库,本项目适配最新 5.5 版本,并提供友好文档与示例代码(如窗口初始化、文本绘制等)。支持 PHP 7.4+ 和多平台(Windows、Linux、macOS),可通过 Composer 快速安装。欢迎贡献和完善![查看文档](http://raylib.kllxs.top/) 或访问仓库(GitHub/Gitee/Gitcode)。
PHP-Raylib 视 频 游 戏 编 程 库

推荐镜像

更多