PHP 50W 条记录 EXCEL 文件导入数据库求指导下方法

2018-04-11 10:33:58 +08:00
 jd186

数据库表有 50W 左右的记录。每条记录有 300 的个的字段。

要以 EXCEL 或者 CSV 形式的文件批量导入数据库。

我用 PHPEXCEL 做导入时一直报错。文件都打不开。求大神指导下。谢谢

5345 次点击
所在节点    PHP
37 条回复
moro
2018-04-11 12:47:33 +08:00
用 Navicat,可以直接导入 excel
heretreeli
2018-04-11 12:50:20 +08:00
Navicat +1
fortunezhang
2018-04-11 16:16:44 +08:00
我一般是用 python 读取 excel 文件,然后一次读取一条,组织成 sql,写入一个 sql 文件中,然后 mysql source 一下。
Bisn
2018-04-11 16:45:07 +08:00
Perl
yujieyu7
2018-04-11 16:55:41 +08:00
估计是一次性读取入内存做写入的,这个数据量,一个字段 10 字节,都 50w*300*10B,小 1.4g 。

自己写个脚本,一行行的读取导入吧
wingoo
2018-04-11 16:59:57 +08:00
load data 最快的
xiaoyang7545
2018-04-11 17:09:44 +08:00
直接 navicat 可以的话就 navicat,如果实在需要 php。请分段用 csv。用 xls 的格式+phpexcel 效率非常低下。你这个估计是超出内存限制了。
tegic
2018-04-11 17:12:25 +08:00
lihongjie0209
2018-04-11 17:52:22 +08:00
forkjoin thread pool 了解一下.
本质上也是切割文件然后多线程插入数据库.
silencefent
2018-04-11 18:00:41 +08:00
干嘛不用工具呢,mysqlfront 十分钟之内搞掂
liujinsong668
2018-04-11 20:35:50 +08:00
生成器,了解下
wwww961h
2018-04-11 22:22:18 +08:00
用工具吧,最简单了,navicat
ericgui
2018-04-12 05:41:44 +08:00
DavidNineRoc
2018-04-12 07:35:09 +08:00
使用 excl 转化成 csv,现在很多数据库可以直接把 csv 转成表,变成表之后再做字段的修改之类的
dy7338
2018-04-16 18:00:37 +08:00
数据库可以直接导入 excel 格式的
jourdon
2018-04-19 16:48:18 +08:00
300 个字段还放一个表里,历害了。。。
jourdon
2018-04-19 16:51:07 +08:00
用 SplFileObject 来读取吧,几万条写一次,速度很快,我试过 50 万条数据 不到一分钟搞定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX