I'm not really qualified to comment on DBD::mysql, but...
I just saw your note on mysql internals, and suspect your request there is unlikely to be given serious consideration. I think your best bet might be to work with the DBD::mysql maintainers to implement some driver-specific nonblocking versions of execute/prepare (and maybe fetch), as well as support for 'out of band' cancel. I've implemented a similar capability for DBD::Teradata with some success, and IIRC there has been some mention of a general async i/f for DBI for awhile. I'm not terribly familiar w/ MySQL's client libs, but I'd hope they provide support for such capability. Or alternately, I believe ODBC provides an async i/f which might be wired into DBD::ODBC. HTH, Dean Arnold Presicient Corp.