Hãy nói rằng bạn phải đoạn mã sau:Làm cách nào để biết liệu kết nối cơ sở dữ liệu Python SQLite hoặc con trỏ có được đóng không?
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
Nếu tôi cố gắng sử dụng conn
hoặc cur
đối tượng sau này, làm thế nào tôi có thể nói rằng họ đang đóng cửa? Tôi không thể tìm thấy phương thức .isclosed()
hoặc bất kỳ thứ gì giống như phương pháp đó.
Phương pháp này là lành mạnh, nhưng tránh thực hiện 'SELECT * FROM mytable' trong khi bạn có thể làm nhẹ hơn' SELECT one_column FROM mytable LIMIT 1'. Trước đây là khủng khiếp không hiệu quả là bạn có một cơ sở dữ liệu không nhỏ. –
cảm ơn @pitrou, được cập nhật để xem xét điều đó. – bernie
@AntoineP. bạn đang nhầm lẫn với SQLite với các cơ sở dữ liệu khác. Không có sự khác biệt về số lượng công việc được thực hiện bởi SQLite. Nó không tính toán tất cả các kết quả cho một truy vấn trả trước - thay vào đó nó có số lượng công việc ít nhất có thể để đưa ra hàng kết quả đầu tiên. Hàng kết quả thứ hai chỉ được thực hiện khi bạn yêu cầu. Do đó giới hạn không có hiệu lực. Trong mọi trường hợp, truy vấn tốt hơn là truy vấn không phụ thuộc vào lược đồ - ví dụ: user_version PRAGMA. –