Помимо уже предложенного AnyEvent::DBI можете попробовать Coro::Mysql (автор
обоих модулей -- Marc Lehmann).

Его отличие в том, что он использует недокументированные возможности
libmysqlclient, чтобы была возможность асинхронно отправлять запросы.
Поэтому накладные расходы заключаются в том, что создается корутина вместо
fork'а в AnyEvent::DBI.
Из этого следует, что используя AnyEvent::DBI можно получить возможность
задавать запросы параллельно "из коробки", в то время как в Coro::Mysql в
один момент времени можно задавать только один запрос (и за этим надо
следить!), если нужно "параллельно" без блокировок (учитывая, что это Coro)
задавать запросы к одной и той же базе, надо самому создать столько
коннектов, сколько нужно.

Если интересно, то да, мы используем Coro::Mysql в продакшене, полет
нормальный. Есть еще некоторые тонкости при работе с этим модулем, но они
довольно незначительные.

2010/9/29 Ruslan Zakirov <[email protected]>

> Привет,
>
> Решил написать проект на AnyEvent, но нуна БД. Чего выбрать не знаю.
> Можно Pg взять и попробовать его async интерфейс, но как-то не хочется
> по таймеру чекать запросы.
>
> Вполне подойдет key/value storage, но тут сплошной пробел в опыте.
> Какие есть у меня опции?
>
> --
> Best regards, Ruslan.
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить