当前位置: 首页 > news >正文

tp6框架 万级数据入库 php函数优化

将万级数据入库并判断有无   没有则新增    上篇是用mysql的replace into实现   本篇是另一种方法

这是我的数据格式:

$data = [

[ 'KCH' => 'value1', 'other_column1' => 'value_other1_1', 'other_column2' => 'value_other2_1', ], [ 'KCH' => 'value2', 'other_column1' => 'value_other1_2', 'other_column2' => 'value_other2_2'],

];

$kchValues = array_column($data, 'code');$existingRecords = SchoolSelfCourse::whereIn('code', $kchValues)->select();$existingKCHValues = array_flip(array_column($existingRecords->toArray(), 'code'));$dataToInsert = array_filter($data, function ($record) use ($existingKCHValues) {return !isset($existingKCHValues[$record['code']]);
});if (!empty($dataToInsert)) {return SchoolSelfCourse::insertAll($dataToInsert);
}

code字段为数据唯一标识

虽然此种方法比replace into耗时稍长  但不会改变数据的自增id

http://www.lryc.cn/news/251295.html

相关文章:

  • TwinCAT3一个PLC设备里多个程序工程之间通讯
  • python弹球小游戏
  • mongoose学习记录
  • 边缘与云或边缘加云:前进的方向是什么?
  • 蓝桥杯第1037题子串分值和 C++ 字符串 逆向思维 巧解
  • 力扣题:字符串的反转-11.23
  • 【软件测试】盘一盘工作中遇到的 Redis 异常测试
  • 14.Oracle中RegExp_Like 正则表达式基本用法
  • Docker Swarm总结+Jenkins安装配置与集成(5/5)
  • docker安装Sentinel zipkin
  • 利用python实现文件压缩打包的功能
  • 如何创建百科?建立百科词条的意义何在?九问百科营销
  • Django如何设置时区为北京时间?
  • Basemap地图绘制_Python数据分析与可视化
  • C#编程题分享(5)
  • 群晖Video Station 添加海报墙-新方法
  • 【MODBUS】Modbus协议入门简介
  • ORA-00257: archiver error. Connect internal only, until freed……
  • 继承 和 多肽(超重点 ! ! !)
  • H265、VP9、AV1视频编码器性能对比
  • C语言-结构体
  • C#拼夕夕自动化登录,电商网页自动化操作。WebView2
  • 【Spring Boot 源码学习】BootstrapRegistryInitializer 详解
  • 预览功能实现
  • canvas基础:绘制贝塞尔曲线
  • 高项备考葵花宝典-项目范围管理输入、输出、工具和技术
  • 在表格中显示字典的内容(根据后端返回的数据)vue3
  • 编程怎么学才能快速入门,分享一款中文编程工具快速学习编程思路,中文编程工具之边条主控菜单构件简介
  • MySQL索引下推
  • 代码随想录刷题题Day3