Description

dse is a simple and crude way of not executing SQL queries in sequence, but caching values until a given max value has been met and then execute them using the executemany-method. The result can be huge speed gains.

dse was only tested on SQLite3 but intended for use in django as well.

import sqlite3 # for testing purposes

from dse import DelayedSqlExecutor

conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
cursor.execute('create table filedata (id INTEGER PRIMARY KEY, filepath TEXT, filename TEXT, filesize INTEGER)')
d = DelayedSqlExecutor(cursor, paramtoken= '?') # using the ? paramtoken here for sqlite3. Leave it blank and it`ll use %s as support by Django etc.
d.addObject('filedata', ('id', 'filepath', 'filename', 'filesize'))

for i in range(0, 999):
    # adding some dummy data. Notice the absence of the id-field. This will trigger inserts.
    #Adding the id-field would trigger an update for data not yet in the db
    d.addItem('filedata', {'filepath': '/tmp/', 'filename': 'test%s.txt' % i, 'filesize': i})
# No SQL has been executed yet, the default limit is 1000 items

# Adding another item will trigger the execution of SQLs and reset the d-instance
d.addItem('filedata', {'filepath': '/tmp/', 'filename': 'test%s.txt' % i, 'filesize': i})

# Adding some records to update
d.addItem('filedata', {'id': 1, 'filepath': '/tmp/', 'filename': 'testmore%s.txt' % i, 'filesize': 100})

# calling close will execute any remaining SQLs
d.close()

# you might be required to call commit on the cursor to commit the data. Depends on how you set up the cursor/connection.

User Reviews for dse For Linux 1

  • for dse For Linux
    dse For Linux provides efficient caching of SQL queries, resulting in significant speed boosts. Ideal for SQLite3 and Django applications.
    Reviewer profile placeholder Emma Thompson
SoftPas

SoftPas is your platform for the latest software and technology news, reviews, and guides. Stay up to date with cutting-edge trends in tech and software development.

Recent

Help

Subscribe to newsletter


© Copyright 2024, SoftPas, All Rights Reserved.