每秒将数据插入MySQL表(每秒一次)
作者:互联网
我是Python,Raspberry Pi和MySQL的新手,希望您能为我提供帮助.我正在尝试用Python编写一个脚本,该脚本可以每秒将数据插入到MySQL表中.我可以插入数据,但不像我想要的那样,我已经尝试了很多次,但是找不到解决问题的方法.这是我的Python代码和插入MySQL表的数据:
Python代码:
#!/usr/bin/env python
import MySQLdb
import time
while True:
db = MySQLdb.connect("localhost", "mauro", "12345", "temps")
curs=db.cursor()
try:
curs.execute ("""INSERT INTO thetemps
values(0, CURRENT_DATE(), NOW(), 28)""")
db.commit()
print "Data committed"
except:
print "Error"
db.rollback()
db.close()
time.sleep(1)
表结果:
+-----+------------+----------+------+
| id | date | time | temp |
+-----+------------+----------+------+
| 107 | 2015-11-06 | 19:16:41 | 28 |
| 108 | 2015-11-06 | 19:16:42 | 28 |
| 109 | 2015-11-06 | 19:16:45 | 28 |
| 110 | 2015-11-06 | 19:16:46 | 28 |
| 111 | 2015-11-06 | 19:16:47 | 28 |
| 112 | 2015-11-06 | 19:16:48 | 28 |
| 113 | 2015-11-06 | 19:16:56 | 28 |
| 114 | 2015-11-06 | 19:17:00 | 28 |
| 115 | 2015-11-06 | 19:17:03 | 28 |
| 116 | 2015-11-06 | 19:17:05 | 28 |
| 117 | 2015-11-06 | 19:17:06 | 28 |
| 118 | 2015-11-06 | 19:17:07 | 28 |
| 119 | 2015-11-06 | 19:17:08 | 28 |
| 120 | 2015-11-06 | 19:17:09 | 28 |
| 121 | 2015-11-06 | 19:17:10 | 28 |
| 122 | 2015-11-06 | 19:17:11 | 28 |
+-----+------------+----------+------+
正如您所看到的,有时凭证会周期性地插入数据,有时我们之间的间隔为8秒.因此,我的问题是:每次数据之间的间隔是否可能为1秒?我究竟做错了什么?
对不起,英语不好,谢谢!
解决方法:
您将在每次迭代中建立到数据库服务器的新连接.这可能会花费任意时间.将.connect()等移出循环可能会给您更一致的时间:
db = MySQLdb.connect("localhost", "mauro", "12345", "temps")
curs = db.cursor()
while True:
try:
curs.execute ("""INSERT INTO thetemps
values(0, CURRENT_DATE(), NOW(), 28)""")
db.commit()
print "Data committed"
except:
print "Error"
db.rollback()
time.sleep(1)
db.close()
标签:raspberry-pi,raspberry-pi2,python,mysql 来源: https://codeday.me/bug/20191027/1946545.html