Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查数据库中新条目的最快和最有效的方法是什么?_Python_Mysql_Sql_Pyodbc - Fatal编程技术网

Python 检查数据库中新条目的最快和最有效的方法是什么?

Python 检查数据库中新条目的最快和最有效的方法是什么?,python,mysql,sql,pyodbc,Python,Mysql,Sql,Pyodbc,我目前有一个应用程序,在任何给定的时间,将插入新的数据到我的数据库。我还有一个不同的python脚本,它在一个无限循环中检查我的数据库,寻找一个新条目,当它找到一个条目时,它选择它,并使用它,然后再次等待 我想知道是否有任何方法可以更有效、更准确地完成这项工作 谢谢 我目前有这样一个设置: conn = pyodbc.connect('Driver={ODBC Driver 13 for SQL Server};' 'Server=REDACTED;'

我目前有一个应用程序,在任何给定的时间,将插入新的数据到我的数据库。我还有一个不同的python脚本,它在一个无限循环中检查我的数据库,寻找一个新条目,当它找到一个条目时,它选择它,并使用它,然后再次等待

我想知道是否有任何方法可以更有效、更准确地完成这项工作

谢谢

我目前有这样一个设置:

conn = pyodbc.connect('Driver={ODBC Driver 13 for SQL Server};'
                      'Server=REDACTED;'
                      'Database= REDACTED;'
                      'UID= REDACTED;'
                      'PWD= REDACTED;')

cursor = conn.cursor()
在循环中,例如:

i = 1
while i < 2:
     #check database for new entry with select statement and compare old list with current list and see if there is a difference. If there is a difference, use that new key and process data. 

i=1
而i<2:
#使用select语句检查数据库中的新条目,并将旧列表与当前列表进行比较,看看是否有差异。如果存在差异,请使用该新密钥和流程数据。
它目前工作得很好,但我觉得它做了很多工作,却一无所获。例如,在一周内,它只会每天访问数据库30-50次,但在周末,它会每天访问数据库近100-200次。。。唯一的问题是,它访问它的次数或时间没有设定

任何帮助都是有用的。
谢谢,我以前从来没有这样做过。但我想到了三个想法

(1) 如果您的脚本正在写入另一个数据库,那么您的替代方案可能是设置源数据库的复制。原始数据库的DBA可以为您进行设置

(2)如果您愿意彻底检查原始数据库,您可以考虑内存数据库(如ReDIS)的实时性,这取决于您的用例可能有帮助。p> (3) sqlalchemy似乎有一个内置的事件侦听器。我在Python中使用sqlalchemy,但从未使用过这个特殊功能


我以前从未这样做过。但我想到了三个想法

(1) 如果您的脚本正在写入另一个数据库,那么您的替代方案可能是设置源数据库的复制。原始数据库的DBA可以为您进行设置

(2)如果您愿意彻底检查原始数据库,您可以考虑内存数据库(如ReDIS)的实时性,这取决于您的用例可能有帮助。p> (3) sqlalchemy似乎有一个内置的事件侦听器。我在Python中使用sqlalchemy,但从未使用过这个特殊功能


您可以使用数据库触发器:您可以使用数据库触发器: