全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2045|回复: 24

求数据库大神帮忙

[复制链接]
发表于 2019-1-1 19:44:25 | 显示全部楼层 |阅读模式
本帖最后由 StudyOverseas 于 2019-1-2 11:10 编辑

目前有70万个gz文件,每个文件6万行(计算错误,实际上是6千行)数据,然后每行有20个字符串
需要把文件都录入数据库,目前是用的Python遍历+读行+写入sql的方法,差不多4秒一个文件,需要30天才能全部录入到数据库。
硬件瓶颈还是io,然而目前硬件升级也不太可能。

有没有什么更加快速的方法?

----------------
感谢各位大佬!
已修改代码,循环 sql+= 然后insertmany,每次sql插入1000行,比之前一次1行的速度快了大概50倍
发表于 2019-1-1 23:14:47 | 显示全部楼层
如果每行字符串是一条sql命令的话,那快不了多少,根据数据库表设计来定
如果只是纯字符串,直接存或者分割下的话,快10倍以上应该是可以的。
程序没写好,io部分要异步的,再加上多线程,跑满硬盘io再说。
你一个文件才2m左右,4秒处理1个怎么能说io跑满了,目前瓶颈肯定不在这里。
发表于 2019-1-2 00:47:14 来自手机 | 显示全部楼层
用loaddata的方式,批量导入会比直接写入快非常多,另外索引先不要加,写入完了再加
发表于 2019-1-1 19:53:10 | 显示全部楼层
学习一下  等大佬解答
发表于 2019-1-1 19:56:50 | 显示全部楼层
分成30个任务,是不是要1天?

并发300,是不是要0.1天?
发表于 2019-1-1 19:57:55 | 显示全部楼层
换ssd 或者加大内存做虚拟盘
发表于 2019-1-1 20:25:06 | 显示全部楼层
如果是有一定格式的文本,最好用数据库自带的工具导入,那样才最快。另外是mysql数据库吗?
发表于 2019-1-1 20:34:59 | 显示全部楼层
python 生成 csv  然后 mysqldump 导入
 楼主| 发表于 2019-1-1 20:35:09 | 显示全部楼层
ibmall 发表于 2019-1-1 19:56
分成30个任务,是不是要1天?

并发300,是不是要0.1天?

一个任务已经io占满了....
 楼主| 发表于 2019-1-1 20:37:49 | 显示全部楼层
ApkB 发表于 2019-1-1 20:25
如果是有一定格式的文本,最好用数据库自带的工具导入,那样才最快。另外是mysql数据库吗? ...

是的,有格式的,求教如何导入?
发表于 2019-1-1 21:03:33 | 显示全部楼层
StudyOverseas 发表于 2019-1-1 20:35
一个任务已经io占满了....

现在一般电脑的性能都不会太差,I/O是瓶颈的不多,更多的瓶颈可能在数据库方面。
具体问题需要具体分析
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-4-8 15:29 , Processed in 0.066362 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表