#sqlite limit 1000,1 performs worse than sqlite limit 1,1 #comment the os.remove('.\test.sqlite') on first run. #v2, better empty loop. import sqlite import os import time SIZE = 1000 os.remove('.\test.sqlite') con = sqlite.connect('.\test.sqlite') cur = con.cursor() res = cur.execute('create table file (fileid integer primary key,path character,media character)') print 'fill db..' for i in xrange(SIZE): cur.execute("insert into file values(null,'abc','audio')") print 'commit..' con.commit() print 'compare empty loop:' for i in xrange(SIZE): start = time.time() cur.execute("select * from file limit %i,%i" % (1,1)) print time.time() - start print 'start:' for i in xrange(SIZE): start = time.time() cur.execute("select * from file limit %i,%i" % (i,1)) print time.time() - start print 'end'