CSV import benchmarks
One million CSV rows imported in under 8 seconds with Scriptella 1.6 on PostgreSQL and MariaDB.
Batched Scriptella took 7.775 seconds on PostgreSQL and 6.694 seconds on MariaDB. Handwritten JDBC was faster; csvsql’s tested direct-import workflow took about 6 minutes.
Benchmark results
Benchmark v4: single observations from the October 21, 2026 GitHub Actions run on Ubuntu 24.04. Lower is faster.
Same million-row CSV, pre-created tables, one transaction per import, no indexes or transformations. Timings include client startup, CSV parsing, insertion, and commit; setup and verification are excluded. PostgreSQL batch rewriting is enabled for both Scriptella and JDBC; MariaDB uses driver defaults. These are single observations, not repeated-run medians. Results depend on workload and environment; PostgreSQL COPY is a database-specific reference.
See the benchmarks repository for full results and environment details, methodology, and instructions to reproduce the comparison.
For tuning advice, see the batching and insert performance guide.
Further reading: Importing a million CSV rows and how PostgreSQL batch rewriting improved import performance on PVR Labs.