我需要从一个巨大的表中读取数据(> 1百万行,16个原始文本)并对其进行一些处理.一行一行地阅读它看起来非常慢(python,MySQLdb),我希望能够一次读取多行(可能并行化).
仅供参考,我的代码目前看起来像这样:
cursor.execute('select * from big_table')
rows = int(cursor.rowcount)
for i in range(rows):
row = cursor.fetchone()
.... DO Processing ...
Run Code Online (Sandbox Code Playgroud)
我试图运行程序的多个实例来迭代表的不同部分(例如,第一个实例将遍历第一个200k行,第二个实例将遍历行200k-400k ......)但问题是第二个实例(以及第三个实例等)需要FOREVER才能进入开始查看行200k以后的阶段.它似乎仍然在处理第一个200k行而不是跳过它们.我在这种情况下使用的代码(第二个实例)是这样的:
for i in range(rows):
#Fetch the row but do nothing (need to skip over 1st 200k rows)
row = cur.fetchone()
if not i in range(200000,400000):
continue
.... DO Processing ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能加快这个过程?有没有一种干净的方法通过python从MySQL数据库进行更快/并行的读取?
EDIT 1:我根据以下建议尝试了"限制"的事情.出于某种原因,虽然当我在我的四核服务器上启动2个进程时,似乎一次只运行一个进程(CPU似乎是在这些进程之间共享时间,而不是每个核心运行一个单独的进程).2个python进程分别使用了14%和9%的CPU.有什么想法可能是错的?
我从github下载了pathogen.vim并将其放在〜/ .vim下的"autoload"目录中.但是现在当我启动gvim并执行:helptags时,它会显示"需要参数".我的〜/ .vimrc文件的内容是:
call pathogen#runtime_append_all_bundles()
call pathogen#helptags()
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
谢谢.
安迪
PS:我这样做,以便我可以安装Nerdtree
---编辑1 ---
根据我到目前为止所见,来自github的pathogen.vim插件对我不起作用,所以我不得不从vim.org下载它,它起作用了.但是现在当我"解压缩nerd_tree -d~/.vim/bundle"然后启动gvim时,我仍然无法找到nerdtree.
- - -结束 - - - - -