我目前有一个应用程序,可以在任何给定时间将新数据插入到数据库中。我还有一个不同的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.
它目前可以正常工作,但是我感觉它正在做很多工作而没有做。例如,在一周中,每个人每天只会真正访问数据库30至50次,而在周末,它将每天接近100至200次访问……唯一的是,没有固定数量它有时会访问它。
任何帮助将是有用的。
谢谢
最佳答案
我从来没有做过此事。但是想到了三个想法。
(1)如果脚本正在写入另一个数据库,那么您的替代方法可能是设置源数据库的复制。原始数据库的DBA可以为您进行设置。
(2)如果您愿意检修原始数据库,则可以考虑使用实时内存数据库(例如redis),具体取决于您可能会用到的用例。
(3)似乎sqlalchemy具有内置的事件侦听器。我在Python中使用sqlalchemy,但从未使用此特定功能。
https://docs.sqlalchemy.org/en/13/orm/session_events.html