
report at bugs
Nov 19, 2009, 8:56 AM
Post #1 of 3
(201 views)
Permalink
|
|
[issue3783] dbm.sqlite proof of concept
|
|
Runar Tenfjord <runar.tenfjord [at] gmail> added the comment: By utilizing triggers on inserts and deletes it is possible to keep track of the size and speed up __len__ by 10 x. SQL: CREATE TABLE IF NOT EXISTS info (key TEXT UNIQUE NOT NULL, value INTEGER NOT NULL); INSERT OR IGNORE INTO info (key,value) VALUES ('size',0); CREATE TABLE IF NOT EXISTS shelf (key TEXT UNIQUE NOT NULL, value TEXT NOT NULL); CREATE TRIGGER IF NOT EXISTS insert_shelf AFTER INSERT ON shelf BEGIN UPDATE info SET value = value + 1 WHERE key = 'size'; END; CREATE TRIGGER IF NOT EXISTS delete_shelf AFTER DELETE ON shelf BEGIN UPDATE info SET value = value - 1 WHERE key = 'size'; END; On my laptop this increase the speed of 'len' about 10x I have a slightly modified version of dbsqlite.py for running on python 2.5 utilizing the triggers for keep track of the size: http://dpaste.com/hold/122439/ ---------- nosy: +rute _______________________________________ Python tracker <report [at] bugs> <http://bugs.python.org/issue3783> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/list-python-bugs%40lists.gossamer-threads.com
|