V2EX › 问与答
我的 python 脚本执行时间长了,他就卡着不动,好久才动一次
qq2549112 · 2015-07-05 01:58:39 +08:00 · 5866 次点击
这是一个创建于 1966 天前的主题,其中的信息可能已经有所发展或是发生改变。
写了个脚本, 用来拉取远程服务器上的数据,然后存入本地,
然后我 执行 python get1.py
拉取了才5w多
脚本就卡了 不动
要好几分钟才动一下
我以为是远程数据库挂了,于是新开一个窗口执行 python get1.py 速度飞快
那就正面 不是远程 和本地数据库的问题
是终端窗口 内存用光了吗
可是我的脚本 就是要让他长期运行呀,这才拉了几万个记录,就卡成这样了
那我有好几十万的数据量 怎么办呀
大家有解决办法吗
第 1 条附言 · 2015-07-05 12:19:40 +08:00
第 2 条附言 · 2015-07-05 12:22:40 +08:00
我的代码是这个 http://paste.ubuntu.com/11824534/
从代码上来看 应该是没有问题 ,后来我加了个判断, 就是offset 可以整除10000的时候 就休息10秒 [也就是每次同步1w个数据,就休息10秒] , 但还是不行,还是会在5w左右的数据量 出现卡住的情况
而且每次都在 5w左右 卡住
所以我现在怀疑是远程数据库 做了什么限制
但是我不知道怎么办了
第 3 条附言 · 2015-07-05 12:25:19 +08:00
会不会是mysql 对每个会话的数据量 做了什么限制啊
第 4 条附言 · 2015-07-05 12:35:10 +08:00
刚才查看了 mysql rds 后台的数据
他对 IOPS 限制到200的 刚才我看他已经 用了100% 也就是用光了
是不是这个用光了啊
不过
我每秒也没有到200次啊啊
现在我测试了 超市10秒, 再看看 ,10秒没有反映 是不是会重新连接
期待上帝保佑
第 5 条附言 · 2015-07-05 15:14:14 +08:00
现在我差不多找到问题原因了
是 因为 到了 5w左右
sql语句变成了
SELECT * FROM table ORDER BY modified ASC LIMIT 52600,100
我网上搜了,说这样的话, 数据库会扫描52600行数据,所以慢,
我参考的文章是 http://www.fienda.com/archives/110
但是我这个 是根据时间戳来 拉数据的, 所以 不能用id 来排除
我要想想 怎么用时间戳 缩小范围
第 6 条附言 · 2015-07-05 16:09:25 +08:00
[结贴]
谢谢大家
现在我找到问题所在了,
是数据库的问题
我重新发了个帖子, http://www.v2ex.com/t/203463
麻烦 懂mysql的朋友 帮我看看 谢谢