如何在ex表格导入php_PHP如何更新、导入Excel30W+数据到数据表

最近产品出了个需求,要求:

在后台管理系统导入10~50w左右的数据到系统,通过excel上传,可以非实时,模板为下图9e814b74f73e513bf5b0413396b5347f.png

作为程序员,第一反应脑海里应该出现了以下几个关键字

PHPExcel

异步、消息队列

mysql的update

很好,其实主要的解决方案的确围绕在这几个问题,其实现实问题中有很多的解决方案,比如能否通过csv,naviecat导、load data、写入一个 sql 文件,然后 mysql source执行等等。那么接下来我们应该按What - Why - How来对应选择方案

但是在实际场景中,我们应该把需求更加具体化,比如

导入的excel是否存在错误的数据?(是否每一行过滤),数据是否会重复、单元格能否空行(判断跳过)

允许非实时,但导入的频率如何?(我这里是一个月导1到2次)

导入完成怎么通知用户?(后台站内信)

方案一

PHPExcel+Mysql Update,简单粗暴的方案,读一行(excel)写一行(update),但是必须在后台常驻内存执行,否则会超时、严重影响业务进行。我这里通过thinkphp5的命令行+定时任务执行,innodb是行锁,要注意更新内容的范围

方案二

PHP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值