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

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

有帮助吗?

解决方案

http://forums.mysql.com/read.php?45,183339,183339享受

更新了显示如何执行异步 mysql 查询的原始文章的链接:

http://jan.kneschke.de/projects/mysql/async-mysql-queries-with-c-api/

其他提示

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

鉴于 ASIO 基于低级操作系统功能(例如 aio_read() 或 ReadFileEx() 等)和操作系统级反应器(或前摄器,在 Windows 的情况下),我认为除了模拟“通过类似的方式实现“异步”。

在线程中运行同步连接器不是一个选项

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

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

[ 在线程中运行同步连接器不是一个选择:您正在使用的 libmysqlclient / mysqlclient.dll 进行同步套接字调用。操作系统调度程序将正确切换到另一个线程,直到 I/O 完成]

这让我很烦恼!-“另一个线程”可以很容易地成为第二个同步。连接到 mysql,并且应该由 mysql 处理,就像完全处理另一个客户端一样?我的直觉是它应该使用多个线程来工作。

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

使用MySQL Connector/C++的参考客户有:- OpenOffice - MySQL 工作台

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

有一个名为 DBSlayer 的项目,它在 MySQL 前面放置了另一层,您可以通过 JSON 与之通信。 http://code.nytimes.com/projects/dbslayer

你有没有考虑过使用 利布毛毛雨?我只使用了旧版本,从它是与 drizzle 独立的项目开始,我测试了异步查询功能,但我从未做过任何值得一提的实际基准测试。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top