1
mrhhsg 2020-11-24 10:10:51 +08:00 7
楼主是不是对“超大”有什么误解?
|
2
Citrullus 2020-11-24 10:12:36 +08:00 5
你这是 8 亿数据的吧😏
|
3
des 2020-11-24 10:14:16 +08:00 1
不说说是什么文件? csv ? sql ?还是 log ?
|
4
wangkun025 2020-11-24 10:15:46 +08:00
不说什么数据,一律按照🍠处理。
|
5
dzdh 2020-11-24 10:20:26 +08:00
不管多大直接 `mysql -Ux -px -hx < source.sql`
|
6
rabbirbot00 2020-11-24 10:24:00 +08:00
navicat 可以导入啊,csv 起码是可以的,txt 没有试过,设置好分隔符应该和 csv 一样的吧
|
7
liprais 2020-11-24 10:25:38 +08:00
load infile
|
8
KouShuiYu 2020-11-24 10:51:47 +08:00
@wangkun025 红薯?
|
9
wangkun025 2020-11-24 11:02:33 +08:00
@KouShuiYu 嗯嗯。
|
10
lTsuKi 2020-11-24 11:06:39 +08:00 via Android
MySQL 直接用 load data infile 呀
如果是 8e 数据那有一行有点问题,建议清理了再导入🌚👌🏻 |
11
zhongjun96 2020-11-24 11:43:35 +08:00
@lTsuKi #10 导入一小时了,才导入 2e,有啥快速导入的方法吗?或者有啥直接查找的方法 ?用 cat 等半天,less 也是半天
|
12
beryl 2020-11-24 11:47:59 +08:00
直接 load data infile 问题不大,但是可能需要考虑导入过程中间出现问题怎么办,例如连接断了,某一行数据异常,针对这种情况,可以先将文件切分为几个,避免异常后,重新处理的成本
|
13
samzong 2020-11-24 11:59:55 +08:00
最多导入的时候用了 50 分钟,还原一个 db,对心态的极其考验
|
14
Hconk 2020-11-24 12:38:02 +08:00 via iPhone
@zhongjun96 rg 直接搜
|
15
wzq001 2020-11-24 12:49:52 +08:00
插个眼~!
|
16
dog82 2020-11-24 13:27:40 +08:00
要说清楚 20G 是啥
|
17
funbox 2020-11-24 13:53:34 +08:00 3
进入 mysql
mysql -u root -p 创建数据库 CREATE DATABASE 数据库名; 设置参数 set sql_log_bin=OFF;//关闭日志 set autocommit=0;//关闭 autocommit 自动提交模式 使用数据库 use 数据库名; 开启事务 START TRANSACTION; 引入 SQL 文件 source 文件的路径; 成功后事务提交 COMMIT; |
18
MurphyL0 2020-11-24 13:58:57 +08:00 via Android
load data infile...
|
19
lTsuKi 2020-11-24 14:29:10 +08:00 via Android
@zhongjun96 用 load data infile 大概几十分钟就导入完了,不过索引建了 2 个多小时,最后 3 小时 20 分钟完成,数据 22G,可秒查了
|
20
Cll66 2020-11-24 14:32:55 +08:00 2
微博裤子?
|
21
towser 2020-11-24 14:38:32 +08:00
泄漏的电话?
|
22
userlijinhong OP @mrhhsg 我说的超大是文件大小,不知道这样说是否合理,或者说你们对超大有什么其他的见解 (我竟然不知道怎么在这上面发表情)
|
23
userlijinhong OP @des csv
|
24
userlijinhong OP navicat 是可以导入,但是考虑到网络 IO 的问题,可能会比较慢;然后数据文件还是在服务器上的,本地文件的读取就不用考虑数据路由,网络带宽等因素了
|
25
aice755169 2020-11-24 15:16:55 +08:00
什么格式没说,不同格式 效率差很多的
|
26
userlijinhong OP @funbox 对于这种手动提交事务的话,我觉得还是把文件划分为小文件了再导入,万一数据出错,又要重新来
|
27
userlijinhong OP @lTsuKi 我等哈去试一哈
|
28
userlijinhong OP @aice755169 是我大意了,格式的话是 cvs
|
29
ruzztok 2020-11-24 15:35:15 +08:00 1
我还以为你要导入一部电影到数据库中
|
30
userlijinhong OP @KouShuiYu 我开始看半天嗯是没看懂这个红薯...不过我没那么多的红薯资料
|
31
Hodor 2020-11-24 15:44:47 +08:00
文件发我,我帮你测试一下啊,哈哈哈
|
32
userlijinhong OP @Hodor 这就不劳烦兄弟,我觉得我能行,哈哈嗝
|
33
Donss 2020-11-24 16:47:29 +08:00
datax?
|
34
lixintcwdsg 2020-11-24 16:48:02 +08:00
不管如何,一定要用 load data,其余效率和 load data 都差好远
然后文件要分割一下 |
35
lyy16384 2020-11-24 17:11:13 +08:00
我觉得直接写程序插入就行,多线程,一次 insert 多行,批量提交事务,直接拼 sql 不要用参数化,程序和数据库放一台机器上,其他访问数据库的服务都先下线
以前用这种方式迁移过两亿条数据,而且是一边读 db 一边处理逻辑一边写 db,只要半小时左右 |
36
dorothyREN 2020-11-24 17:35:18 +08:00
20G 真不算大
|
37
Shuiss 2020-11-24 18:26:33 +08:00
@wangkun025 红薯是什么?
|
38
wangkun025 2020-11-24 18:47:48 +08:00
@Shuiss 随口一说而已。别当真。抱歉带来困扰。
毕竟楼主说大文件,我也不知道是什么啊。后来楼主说是 csv 。 万一是 sql 呢,万一是 Excel 呢,万一是蓝光高清电影呢,万一是照片呢。 开始楼主没说啊。就这。 |
39
lostberryzz 2020-11-24 21:53:26 +08:00 1
44.65G 神秘文件哈哈哈
|
40
KIzuN1 2020-11-24 22:04:24 +08:00
@lostberryzz 制种者为啥把 WB 弄了两份捏
|
41
laminux29 2020-11-24 22:08:40 +08:00
分批导入并校验 + 实时监控各设备负载并不断解决瓶颈
|
42
lostberryzz 2020-11-25 00:32:11 +08:00
@KIzuN1 可能是操作失误,两个文件没有区别
|
43
en20 2020-11-25 00:43:41 +08:00 via iPhone
看不懂各位谜语人,什么红薯 8e,谁能明示一下??
|
44
zhongjun96 2020-11-25 09:04:55 +08:00
@en20 #43 红薯 39L 解释了,8e 就是 qq 数据
|
45
kios 2020-11-25 09:53:04 +08:00
感觉你重新定义了超大这个词汇,哈哈哈哈
|
46
funbox 2020-11-25 14:36:42 +08:00
@userlijinhong 这个还好 首先你要吧 sql 文件上传到服务器上 这样的话建立索引的时间会大大缩短 导入会加速的
|
47
toomlo 2020-11-25 16:19:04 +08:00
你要是没机器,就去各种云创建个按量付费的,在 docker 里面搞好镜像在上传
|
48
userlijinhong OP @kios 看来我还是个没长个见识的小白,哈哈哈嗝
|
49
csx163 2020-11-28 10:25:46 +08:00
为什么没人提 mysqlsh
|
50
Ayersneo 2020-12-05 00:15:58 +08:00
我就是这么干的 我是新手效率很低 用 pandas 分了 10 几个小文件后 load data infile 但是还是动不动就报错啥严格模式,啥满了 bulabula😖
|
51
ibin 2022-09-09 21:29:13 +08:00
老哥,分享一份
|