2013-01-03 43 views
0

我在python中使用sqlite3,程序在不同的线程中运行。 Sqlite3只驻留在一个线程中。过了一段时间,sqlite3线程占用了很多内存。限制sqlite3使用的最大内存量

如何限制sqlite3使用的最大内存量?

tumb关于最大内存大小的规则是什么?

回答

2

您可以将PRAGMA语句传递给游标对象以更改当前会话的数据库行为。

在pragma语句是使用相同的接口,其它的SQLite命令发出(例如SELECT,INSERT)

>>> import sqlite3 
>>> conn = sqlite3.connect(FILENAME) 
>>> cur = conn.cursor() 
>>> cur.execute("PRAGMA cache_size = -512") # Negative value means use N * 1024 bytes of memory. 
<sqlite3.Cursor object at 0x01F14260> 

从SQLite的文档:http://www.sqlite.org/pragma.html#pragma_cache_size

+0

授予这个例子使用可笑的小内存量,但它仅用于说明目的。 –

+0

限制:memory:数据库中的高速缓存大小没有意义。也许你可以适应你的例子 –

+0

为什么512兆字节缓存少量? –