我使用 connect() 和 cursor() 来使用 SQLite
self.connector = sqlite3.connect(self.dbFile) self.cursor = self.connector.cursor()
并 close() 停止使用它。
self.cursor.close()
它们有多贵(就处理时间而言)?它是否如此昂贵以至于只有绝对必要才需要使用它?或者,是否可以在一个函数中多次使用它?
添加
我用下面的简单代码进行了测试。proc1() 使用在运行查询时始终打开和关闭的代码,而 proc2() 只运行一次。
from sqlite import *
import timeit
import math
def proc1():
db = SQLiteDB("./example.db", False)
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
db.getOpenRunClose("SELECT * from Benchmark")
def proc2():
db = SQLiteDB("./example.db")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
res = db.runSQLToGetResult("SELECT * from Benchmark")
db.close()
if __name__ == '__main__':
t = timeit.Timer(proc1)
count = 5000
print t.timeit(count) / count
t = timeit.Timer(proc2)
count = 5000
print t.timeit(count) / count
结果如下。
0.00157478599548
0.000539195966721