"파이썬 2.7.4 + sqlite3"과 "파이어 폭스 SQLite 관리자 0.8.0"을 사용하여 같은 데이터베이스에 동일한 요청을 처리하려고했습니다.python + sqlite3이 너무 느린 이유는 무엇입니까?
파이썬과 파이어 폭스 모두 작은 데이터베이스 (8000 개 레코드)에서 빠르게 작동하며 동일한 결과를 제공합니다.
더 큰 데이터베이스에(2600000 개 기록) : 28초에
- SQLite는 관리자 처리 데이터베이스 (24 개 기록)
- 파이썬 프로그램이 어떤 결과없이 20 분 동안 이미 작동하고
무엇 다음 프로그램에 잘못 될 수 있으므로 python sqlite3은 합리적인 시간에 쿼리를 처리 할 수없고 동일한 요청을 더 빠르게 처리 할 수 있습니까?
import sqlite3
_sql1 = """SELECT DISTINCT J2.rule_description,
J2.feature_type,
J2.action_item_id,
J2.rule_items
FROM journal J1,
journal J2
WHERE J1.base = J2.base
AND J1.action_item_id=J2.action_item_id
AND J1.type="Action disabled"
AND J2.type="Action applied"
AND J1.rule_description="Some test rule"
AND J1.action_item_id IN (1, 2, 3, 14, 15, 16, 17, 18, 19, 30, 31, 32)
"""
if __name__ == '__main__':
sqlite_output = r'D:\results.sqlite'
with sqlite3.connect(sqlite_output) as connection:
for row in connection.execute(_sql1):
print row
UPDATE : 문제가 이전과 관련되어, sqlite3.sqlite_version은 '3.6.21'
당신은 SQLite는 관리자 ** 모든 ** 결과 행을 처리하는 확신이 있습니까? 귀하의 파이썬 프로그램은 ... –
예, "SQLite의 명령 행 쉘"도 동일한 24 개의 레코드를 제공합니다 –
아마 SQLite Manager가 데이터베이스 파일을 잠그고 있습니까? – warvariuc