Async C ++ соединитель для MySQL - PullRequest
4 голосов
/ 18 апреля 2011

прибегая к помощи асинхронных / неблокирующих соединителей для mysql, я пошел в основном к этому сообщению

Тем не менее, прошло уже 2 года, и то, что происходит на моросящем месте, в настоящий момент немного сбивает с толку. В какой-то момент libdrizzle была отдельной зависимостью, но они решили объединить ее с остальной частью проекта. Существуют ли другие варианты асинхронного доступа к базе данных из c ++?

Я смотрел на OTL , ODB и OpenDBX , но все они кажутся синхронными (для неблокирующей операции требуется отдельный поток) )

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

У меня было такое же желание, и я пришел к выводу, что оно не поддерживается. Даже с MySQL C API вы можете использовать низкоуровневые функции для выдачи запросов и ожидания ответа асинхронно, но вы никогда не сможете получить полный асинхронный сбор результатов - вы всегда заканчиваете блокированием с момента, когда первая часть результата является вернулся до последнего.

У меня нет прямого опыта с этим, но я читал, что Postgres поддерживает полную асинхронность (по крайней мере, в C API).

0 голосов
/ 15 июня 2016

Я использовал MySAC в моем собственном проекте.Это работает хорошо, хотя немного устарело.Я просто цитирую описание с их сайта:

MySAC - это библиотека, которая предоставляет механизмы для выполнения асинхронного запроса к базе данных MySQL.

И, возможно, вас заинтересует https://github.com/huxingyi/myc если вы используете libuv.Это написанный мной чистый коннектор c mysql, вы можете реализовать свой собственный сетевой уровень или просто использовать реализованный libuv based uvmyc внутри папки примера.

...