TvIdCache.create_table() indexer1, created = database.Indexer.get_or_create(name="indexer1") indexer2, created = database.Indexer.get_or_create(name="indexer2") indexer3, created = database.Indexer.get_or_create(name="indexer3") indexer4, created = database.Indexer.get_or_create(name="indexer4") indexer5, created = database.Indexer.get_or_create(name="indexer5") indexers = [indexer1, indexer2, indexer3, indexer4, indexer5] now = time.time() with database.db.atomic(): # Prefil with 10000 for x in range(1, 6): SearchResult.create(indexer=indexers[x - 1], title="hallo", guid="hallo", link="hallo") for i in range(0, 2000): pass SearchResult.create(indexer=indexers[x - 1], title="%s%d" % (rndstr(80), i), guid="%s%d" % (rndstr(100), i), link="%s%d" % (rndstr(120), i)) # SearchResult.create(indexer=indexers[x - 1], title="%s" % i, guid="%s" % i, link="%s" % i) after = time.time() print(after - now) now = time.time() rows = [] ids = [] with database.db.atomic(): for x in range(1, 6): _, created = SearchResult.get_or_create(indexer=indexers[x - 1], title="hallo", guid="hallo", link="hallo") for i in range(0, 100):