guides

Database Workloads

Optimise database-heavy Python scripts with Pyvorin compilation.

Published May 30, 2026

What Pyvorin Accelerates

Pyvorin compiles the Python code that processes query results, not the database engine itself. Focus on:

  • Row transformations and validation
  • Aggregation logic in Python
  • Batch processing loops

SQLAlchemy

def process_users(session):
    users = session.query(User).all()
    results = []
    for u in users:
        score = u.age * 2 + len(u.name)
        results.append({'id': u.id, 'score': score})
    return results

SQLite

import sqlite3

def aggregate(conn):
    rows = conn.execute('SELECT * FROM sales').fetchall()
    total = 0
    for row in rows:
        total += row[1] * row[2]
    return total

psycopg2 / asyncpg

The database driver connection and query execution remain in CPython. The result-processing loop is compiled natively.

Best Practices

  • Use batch selects instead of row-by-row fetches.
  • Move aggregation into SQL when possible; use Pyvorin for complex Python logic.
  • Connection pooling is handled by the driver and is unaffected by compilation.