异步Mysql连接器

是否存在可以在C或C ++应用程序中使用的Mysql的任何异步连接器? 我正在寻找可以插入用Boost.Asio编写的反应器模式的东西。

[编辑:]在线程中运行同步连接器不是一个选项。

我有一个类似的问题,有一个非常不同的技术:Twisted python(基于reactor的IO)和sqlAlchemy(??)。 在搜索解决方案时,我发现了一个sAsync项目,它只为sqlAlchemy创建了一个单独的线程,然后响应请求。

鉴于ASIO基于低级操作系统function(例如aio_read()或ReadFileEx()等)和操作系统级别的反应器(或者在Windows中的情况下),我认为你没有其他机会而不是模仿’异步’通过类似的方式。

在线程中运行同步连接器不是一种选择

想一想:你正在使用的libmysqlclient / mysqlclient.dll进行同步套接字调用。 OS调度程序将正确切换到另一个线程,直到I / O完成,那有什么区别? (除了你不应该为此制作2k线程的事实..)

编辑:mysql_real_connect()支持UNIX套接字参数。 您可以从mysql服务器端口读取自己,并仅使用ASIO写入该UNIX套接字。 就像一个代理。

[ 在线程中运行同步连接器不是一个选项考虑一下:你正在使用的libmysqlclient / mysqlclient.dll进行同步套接字调用。 OS调度程序将正确切换到另一个线程,直到I / O完成 ]

这让我烦恼! – ‘另一个线程’可以很容易地成为第二个同步。 连接到mysql,应该像mysql一样处理,就像它将另一个客户端一样? 我的观点是它应该使用多个线程。

MySQL Connector / C ++是JDBC 4.0的C ++实现

使用MySQL Connector / C ++的参考客户是: – OpenOffice – MySQL Workbench

了解更多信息: http : //forums.mysql.com/read.php?167,221298

有一个名为DBSlayer的项目,它将另一层放在MySQL之前,通过JSON与之交谈。 http://code.nytimes.com/projects/dbslayer

你考虑过使用libdrizzle吗? 我只使用了一个旧版本,从它是一个单独的项目和毛毛雨,我测试了异步查询function,但我从来没有做任何实际的基准值得一提。

我认为唯一的解决方案是创建一个包装标准连接器的异步服务。 您需要了解ODBC API。

Interesting Posts