MySQL+PHP大文件读取和写库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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();
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
【2月更文挑战第14天】DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
56 8
|
2月前
|
分布式计算 DataWorks 关系型数据库
DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
30 4
|
4月前
|
存储 关系型数据库 MySQL
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
MySQL库的操作『增删改查 ‖ 编码问题 ‖ 备份与恢复』
51 0
|
3月前
|
关系型数据库 MySQL PHP
|
3天前
|
SQL 关系型数据库 MySQL
用MySQL创建公司资料库表格
创建了员工、分支、客户及工作关系的数据库表格。员工与分支间有works_with表记录销售数据,外键关联并处理删除操作(set null或cascade)。插入数据后,通过SQL查询获取员工、客户信息,使用聚合函数、通配符、联合查询和JOIN操作。子查询用于复杂条件筛选。数据库设计确保了数据完整性和参照完整性。
11 0
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
5天前
|
关系型数据库 MySQL
MySQL全局库表查询准确定位字段
information_schema.COLUMNS 详细信息查询
184 4
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
|
1月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数