我目前有一个应用程序,可以在任何给定时间将新数据插入到数据库中。我还有一个不同的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

10-04 21:35
查看更多