Runar Tenfjord <runar.tenfj...@gmail.com> 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 <rep...@bugs.python.org> <http://bugs.python.org/issue3783> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com