2013-01-03 41 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兆字節緩存少量? –