2
有沒有辦法讓用戶在python中停止執行sql查詢,如果需要很長時間?我正在考慮使用帶有取消按鈕的進度條,但是我想知道是否有辦法以一種乾淨的方式來阻止它,而不是突然殺死相關的線程? (我用兩個pysqlite2和MySQLdb的包)在Python中停止SQL查詢
有沒有辦法讓用戶在python中停止執行sql查詢,如果需要很長時間?我正在考慮使用帶有取消按鈕的進度條,但是我想知道是否有辦法以一種乾淨的方式來阻止它,而不是突然殺死相關的線程? (我用兩個pysqlite2和MySQLdb的包)在Python中停止SQL查詢
我看到的唯一的解決辦法是讓進程ID:
SHOW PROCESSLIST;
,並殺死它:
KILL <thread_id>;
我會執行這些命令MySQLdb的。
但是,你應該小心回滾。例如見: If I stop a long running query, does it rollback?
希望它有助於
這是否被視爲終止查詢的「乾淨」方式? – banx 2010-08-07 19:16:44
我想你會更好解決爲什麼查詢花費這麼長時間 – 2010-08-07 17:54:40
@OMG_Ponies:通常情況下,查詢並不需要太多的時間,但例如,我有一個查詢需要超過100秒,涉及到大約一百萬行的排序和分組。 – banx 2010-08-07 18:32:39