python 访问 Mysql 数据库,是多线程好还是多进程好?

2016-12-30 20:39:28 +08:00
 anonymoustian

现在需要用 python 对 mysql 数据库进行读写, 具体用到的语句是:

insert into talbe(,,,,,) values(,,,,)

on dupicate update

c=c+1 。。。。

也就是说每一次的数据库的操作涉及到 查询并插入 或查询并修改 环节。。

想问一下我现在有 2000 个的文本文件,每个文件有 2 万行,按行读取并操作,如果想达到 合适的效率

我应该选择使用多线程还是多进程 进行读写 并操作数据库呢?

谢谢!~

另外如果做得话,有没有参考的文档或者代码,谢谢!~

7459 次点击
所在节点    Python
11 条回复
Septembers
2016-12-30 20:44:05 +08:00
处理成 csv 使用 load data 导入效率最高

see https://dev.mysql.com/doc/refman/5.7/en/load-data.html
anonymoustian
2016-12-30 20:48:53 +08:00
@Septembers 但是我还要对这些数据进行一些程序上的过滤~,应该怎么办呢
Septembers
2016-12-30 20:56:51 +08:00
@anonymoustian 如果你的目标是快速导入的话并且不强调数据的关联性
可以吧数据处理好成 csv 然后倒入之
如果数据存在关联性则是直接结构化成 csv 然后写 SQL 处理

如果你要坚持采用你现有方案导入速度难以提升
lbp0200
2016-12-30 21:03:09 +08:00
@anonymoustian 过滤完,存 csv ,再导入
anonymoustian
2016-12-30 21:03:53 +08:00
@lbp0200 好的 谢谢
anonymoustian
2016-12-30 21:04:40 +08:00
@Septembers 好的 谢谢
anonymoustian
2016-12-30 21:04:45 +08:00
@Septembers 谢谢
q397064399
2016-12-31 09:19:02 +08:00
多线程 多进程 应该不是问题,反正是写时拷贝,资源上没问题,
数据上 注意保持事务一致性,就可以了
ytmsdy
2016-12-31 16:48:29 +08:00
控制好事务就可以了!
anonymoustian
2017-01-01 14:41:38 +08:00
@q397064399 能详细说一下事务的一致性吗?
q397064399
2017-01-01 15:59:12 +08:00
@anonymoustian 百度搜吧 事务很简单的,一般应用数据系统 事务是基础

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

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

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

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

© 2021 V2EX