DBIx::Fast examples
Start here: raw-sql.pl — a self-contained tour of running your own SQL
(SELECT return shapes, streaming iterator, raw UPDATE/DDL, named placeholders),
no server needed:
perl -Ilib examples/raw-sql.pl
The rest fall into two families: live-server demos (take a DSN argument, or
fall back to the DBIX_FAST_TEST_* environment variables that ../dev/test.sh
exports) and self-contained benchmarks (SQLite / pure Perl, no server
needed).
Run everything at once against throwaway docker containers:
../dev/test.sh examples # from this directory (or ./dev/test.sh from the root)
Live-server demos
| Script | Shows | Server |
|---|---|---|
| profiler-mariadb.pl | query tracker, EXPLAIN, table/index/server stats, connections | MariaDB — also works against MySQL (mysql:// DSN resolves to Profile::mysql) |
| profiler-pg.pl | the same tour on PostgreSQL (Profile::Pg, pg_stat_*) | PostgreSQL |
| monitor-connections.pl | one-shot connection monitor; --watch refreshes, --json emits DBIx::Fast::Output events | MariaDB / MySQL |
perl -Ilib examples/profiler-mariadb.pl mariadb://root:test123@127.0.0.1:3307/dbix_test
perl -Ilib examples/monitor-connections.pl --json # DSN from DBIX_FAST_TEST_MARIADB
Benchmarks
| Script | Measures |
|---|---|
| benchmark-statement-cache.pl | prepare_cached vs raw prepare vs select* convenience calls (-t SECONDS, --mariadb DSN for a live run) |
| benchmark-query-cache.pl | cached() hit/miss cost vs going to SQLite |
| benchmark-cache-backends.pl | LRU::Cache vs hash vs CHI backend op cost |
| benchmark-lazy-require.pl | startup cost of eager vs lazy subsystem loading |
| benchmark-profiler-regex.pl | the profiler's SQL-classification regexes |