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

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.kler.cn/a/148651.html

相关文章:

  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • 探索Pillow库:Python图像处理的瑞士军刀
  • MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?
  • Redis高可用-主从复制
  • uniapp+vue2 设置全局变量和全局方法 (兼容h5/微信小程序)
  • 浅谈C#之内存管理
  • 如何解决 Java 中的 IllegalArgumentException 异常?
  • Windows10系统卸载服务和删除服务
  • 使用STM32 HAL库驱动光电传感器的设计和优化
  • Python算法——Merkle树
  • 09-详解JSR303规范及其对应的校验框架的使用
  • Python与设计模式--中介者模式
  • 国家对于新消费新经济有哪些新旨意?
  • VScode集成python开发环境和基本插件下载配置
  • 【沐风老师】3DMAX拼图建模工具MaxPuzzle2D插件使用方法详解
  • 视频字幕处理+AI绘画,Runway 全功能超详细使用教程(4)
  • 学习MySQL先有全局观,细说其发展历程及特点
  • 学习笔记-瑞吉外卖项目实战(一)
  • 食谱菜谱大全API接口
  • 设计模式——RBAC 模型详解
  • 11.28
  • Scrapy爬虫异步框架之持久化存储(一篇文章齐全)
  • 在awk中 sub函数 和 gsub函数 的区别
  • Docker 运行 Oracle Autonomous Database Free Container
  • Android虚拟化
  • [机缘参悟-120] :计算机世界与佛家看世界惊人的相似