数据库
首页 > 数据库> > 每秒将数据插入MySQL表(每秒一次)

每秒将数据插入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