in reply to Non-Blocking SQL via DBI

Mysql seems to ignore this sort of thing, since it's built on threads already. I suspect they think you should just use a condition variable within your threaded client. Maybe when Perl 6 has stable threads :)

PostgreSQL, however, specifically talks about blocking during queries. They seem to have several ways of dealing with it, although I'm not clear on how many of them are supported by the DBD::Pg module.

In any case, if switching to PostgreSQL is an option, have a look at their page on asynchonous query processing. Then try and figure out how much of it is supported from DBD::Pg :)