V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
anonymoustian
V2EX  ›  Python

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

  •  
  •   anonymoustian · 2016-12-30 20:39:28 +08:00 · 7551 次点击
    这是一个创建于 2903 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    on dupicate update

    c=c+1 。。。。

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

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

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

    谢谢!~

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

    11 条回复    2017-01-01 15:59:12 +08:00
    Septembers
        1
    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
        2
    anonymoustian  
    OP
       2016-12-30 20:48:53 +08:00
    @Septembers 但是我还要对这些数据进行一些程序上的过滤~,应该怎么办呢
    Septembers
        3
    Septembers  
       2016-12-30 20:56:51 +08:00
    @anonymoustian 如果你的目标是快速导入的话并且不强调数据的关联性
    可以吧数据处理好成 csv 然后倒入之
    如果数据存在关联性则是直接结构化成 csv 然后写 SQL 处理

    如果你要坚持采用你现有方案导入速度难以提升
    lbp0200
        4
    lbp0200  
       2016-12-30 21:03:09 +08:00 via Android
    @anonymoustian 过滤完,存 csv ,再导入
    anonymoustian
        5
    anonymoustian  
    OP
       2016-12-30 21:03:53 +08:00
    @lbp0200 好的 谢谢
    anonymoustian
        6
    anonymoustian  
    OP
       2016-12-30 21:04:40 +08:00
    @Septembers 好的 谢谢
    anonymoustian
        7
    anonymoustian  
    OP
       2016-12-30 21:04:45 +08:00
    @Septembers 谢谢
    q397064399
        8
    q397064399  
       2016-12-31 09:19:02 +08:00
    多线程 多进程 应该不是问题,反正是写时拷贝,资源上没问题,
    数据上 注意保持事务一致性,就可以了
    ytmsdy
        9
    ytmsdy  
       2016-12-31 16:48:29 +08:00 via iPhone
    控制好事务就可以了!
    anonymoustian
        10
    anonymoustian  
    OP
       2017-01-01 14:41:38 +08:00
    @q397064399 能详细说一下事务的一致性吗?
    q397064399
        11
    q397064399  
       2017-01-01 15:59:12 +08:00
    @anonymoustian 百度搜吧 事务很简单的,一般应用数据系统 事务是基础
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4638 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:11 · PVG 09:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.