NAME

DBIO::MySQL::Async - Async MySQL/MariaDB storage for DBIO via EV::MariaDB

VERSION

version 0.900000

SYNOPSIS

# Schema setup
my $schema = MyApp::Schema->connect(
    'DBIO::MySQL::Async',
    {
        host      => 'localhost',
        dbname    => 'myapp',
        user      => 'myapp',
        password  => 'secret',
        pool_size => 10,
    },
);

# Async queries return Futures
$schema->resultset('Artist')->all_async->then(sub {
    my @artists = @_;
    say $_->name for @artists;
});

# Pipeline mode — batch queries in one round-trip
$schema->storage->pipeline(sub {
    my @futures;
    push @futures, $schema->resultset('Artist')
        ->create_async({ name => $_ }) for @names;
    return Future->needs_all(@futures);
});

# Sync methods still work (block the event loop)
my @all = $schema->resultset('Artist')->all;

DESCRIPTION

Async MySQL/MariaDB support for DBIO using EV::MariaDB, a non-blocking MariaDB client built on MariaDB's C client library. Bypasses DBI entirely for maximum performance.

Supports pipeline mode (batching queries in a single round-trip) and prepared statements.

EVENT LOOP COMPATIBILITY

EV::MariaDB uses the EV event loop. This works with:

AUTHOR

DBIO Authors

COPYRIGHT AND LICENSE

Copyright (C) 2026 DBIO Authors

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.