鱼C论坛

 找回密码
 立即注册
查看: 2407|回复: 7

[已解决]深夜再次求助,数据库读取问题

[复制链接]
发表于 2016-10-11 23:44:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
鱼友们,老师们,我最近在做python读取数据库里面的信息进行处理,数据处理部分的代码已经完成了,情况是这样的,数据库每分钟都有数据写进去,但是我读取数据库对数据处理的速度大于数据库写入的速度,我用数据库中的id(每次处理完10条数据就累加10)作为查询处理的索引,每次读取十条,做了个判断,当读取数据库后的返回值小于10就不对id进行累加且保持当前值,然后time.sleep(60)(等待1分钟,当然这一分钟内是肯定有数据写入的),但是我做测试的时候,却没能成功(在等待的一分钟里面我手动插入了20条数据),理论上执行sql语句后是有结果的,但是返回数值却是0。
最佳答案
2016-10-13 09:39:29
问题经过滚滚的折腾已经解决,每次执行完查询后就关闭游标,这样竟然行了!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-10-11 23:47:03 | 显示全部楼层
本帖最后由 liangmanxing 于 2016-10-11 23:48 编辑

贴上测试的代码,希望有好人指点一下,学生不是伸手党,搞了6个多小时,决定向鱼友们发射SOS
import MySQLdb
import re
import os
import time
purl=r'"(http[^ ]*)"'
conn1= MySQLdb.connect("192.168.189.78","root","915991678","logs")
cursor1 = conn1.cursor()
sid=1
eid=10
while 1:
        print sid
        print eid
        sql1 = "select * from logs20160921  where id between %d and %d"%(sid,eid)
        print sql1
        cursor1.execute(sql1)
        bbb=cursor1.execute(sql1)
        rs=cursor1.fetchall()
        print bbb
        print len(rs)
        if len(rs)<10:
                sid=sid
                eid=eid
                print"waiting for data......"
                time.sleep(60)
        else:
                sid=eid+1
                eid+=10
        for line in rs:
                line=[str(i) for i in line]
                line=''.join(line)
                a=re.search(purl,line)
                if a:
                        urla=a.group(0)
                        print urla
                else:
                        urla="NONE"
                        print urla
        time.sleep(2)

cursor1.close()
conn1.close()
         
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-11 23:50:44 | 显示全部楼层
这是测试的结果,手动插入数据后,无奈sql语句在数据库中执行是有结果的,但是程序好像没有反应过来

71
80
select * from logs20160921  where id between 71 and 80
0
0
waiting for data......
71
80
select * from logs20160921  where id between 71 and 80
0
0
waiting for data......
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-11 23:52:32 | 显示全部楼层
mysql> select * from logs20160921  where id between 71 and 80;
+----+---------------------+------------+---------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+
| id | datetime            | host       | program | pid   | message                                                                                                                                      |
+----+---------------------+------------+---------+-------+----------------------------------------------------------------------------------------------------------------------------------------------+
| 71 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 72 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 73 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 74 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 75 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 76 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 77 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 78 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 79 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
| 80 | 2016-09-12 11:07:15 | 12-24-4-10 | squid   | 15390 | 1473649373.214    190 123.125.143.26 TCP_HIT/200 144049 GET

                               
登录/注册后可看大图
- NONE/- - |
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 00:00:12 | 显示全部楼层
虽然我还没看懂,但是建议楼主发代码的时候用代码器这样看起来舒服点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-12 00:49:31 | 显示全部楼层
设断点调试看下。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-12 10:42:05 | 显示全部楼层
domenet 发表于 2016-10-12 00:49
设断点调试看下。

好奇怪的发现了个问题,就是当rs少于10的时候,我直接对sid和eid赋值(sid=1,eid=10类似这样的赋值),执行是有结果的,但是我对其进行进行加减法运算(sid=sid-10,eid=eid-10类似这样)或者维持原来的值不变却是没有结果,,,好迷茫的人生啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-13 09:39:29 | 显示全部楼层    本楼为最佳答案   
问题经过滚滚的折腾已经解决,每次执行完查询后就关闭游标,这样竟然行了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-23 07:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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