Lassen Sie uns sagen, dass Sie den folgenden Code haben:Wie erkennt man, ob die Python SQLite-Datenbankverbindung oder der Cursor geschlossen ist?
import sqlite3
conn = sqlite3.connect('mydb')
cur = conn.cursor()
# some database actions
cur.close()
conn.close()
# more code below
Wenn ich versuche, später auf die conn
oder cur
Objekte zu verwenden, wie könnte ich sagen, dass sie geschlossen sind? Ich kann keine .isclosed()
Methode oder etwas ähnliches finden.
Die Methode ist gesund, aber vermeiden Sie eine 'SELECT * FROM Mytable', während Sie eine viel hellere 'SELECT one_column FROM mytable LIMIT 1' tun können. Ersteres ist schrecklich ineffizient, wenn Sie eine nicht-kleine Datenbank haben. –
danke @pitrou, aktualisiert um dies zu berücksichtigen. – bernie
@ AntoineP. Sie verwechseln SQLite mit anderen Datenbanken. Es gibt keinen Unterschied in der Menge der von SQLite ausgeführten Arbeit. Es werden nicht alle Ergebnisse für eine Abfrage im Voraus berechnet, sondern es wird so wenig Arbeit wie möglich für die erste Ergebniszeile ausgeführt. Die zweite Ergebniszeile wird nur ausgearbeitet, wenn Sie danach gefragt werden. Folglich hat das Limit keine Auswirkung. In jedem Fall ist eine bessere Abfrage eine Abfrage, die nicht vom Schema abhängt - zB PRAGMA user_version. –