Python 删除记录的Sqlite触发器花费的时间太长

Python 删除记录的Sqlite触发器花费的时间太长,python,python-2.7,sqlite,Python,Python 2.7,Sqlite,我的数据库里有50000条记录。我对触发器进行了维护,当它跨越50000条记录(即50001条记录)时,我将删除前49000条记录,只保留最后1000条记录 触发器是由python脚本设置的,对DB的插入也是由python脚本完成的 这里的问题是通过触发器将行删除到DB中花费的时间太长 我听说python比命令行慢得多,当我通过命令行执行时,需要10到15秒。通过python,当它插入第50001条记录并试图删除之前的49000条记录时,程序无法完成任务 我等了大约半个小时,它仍然在执行。我该怎

我的数据库里有50000条记录。我对触发器进行了维护,当它跨越50000条记录(即50001条记录)时,我将删除前49000条记录,只保留最后1000条记录

触发器是由python脚本设置的,对DB的插入也是由python脚本完成的

这里的问题是通过触发器将行删除到DB中花费的时间太长

我听说python比命令行慢得多,当我通过命令行执行时,需要10到15秒。通过python,当它插入第50001条记录并试图删除之前的49000条记录时,程序无法完成任务

我等了大约半个小时,它仍然在执行。我该怎么办

PS:扳机很好

    sql = '''CREATE TRIGGER autodelete AFTER INSERT ON syslog
           WHEN (SELECT COUNT(*) FROM syslog) > '''+self.size_limit+'''
           BEGIN
           DELETE  from syslog where time < ( select time from syslog limit -1 offset '''+str(self.co)+''');
       INSERT INTO syslog (loglevel, logcode,logmessage) SELECT level loglevel, code  logcode,message logmessage FROM syslog_default_codes where ROWID=1;
           END'''
        self.cur = self.con.cursor()
        self.cur.execute('INSERT INTO syslog (loglevel, logcode, logmessage) values (?, ?, ?)', (loglevel, logcode, logmessage))
        self.con.commit()