MySQL API的异步C/C++实现~

2012-01-09 21:54:01 +08:00
 xatest
参考: http://stackoverflow.com/questions/38447/asynchronous-mysql-connector-for-c-or-c

MySQL的原生API都是同步调用的,会阻塞在网络上,请问是否有比较可靠的异步连接、发送、接收的C/C++实现方法,可以把MySQL的基本操作(增删改查原子操作)以网络事件通知异步实现?
13687 次点击
所在节点    MySQL
9 条回复
gowinder
2012-01-10 22:50:05 +08:00
要自己封装,做异步操作完成通知,如果是单连接,要做操作队列,不然要做连接池,mysql api好像不支持异步
xatest
2012-01-11 10:22:46 +08:00
@gowinder 谢谢,目前我的打算是用操作队列缓冲+连接池~
napoleonu
2012-01-11 10:38:51 +08:00
这样做的目的是什么呢,或者是为了解决什么问题呢?
xatest
2012-01-11 13:16:58 +08:00
@napoleonu 解决MySQL写操作较多时比较慢的问题~
napoleonu
2012-01-11 13:52:21 +08:00
@xatest 既然你没有特别的需求,那么你应该优化写,而不是想这种怪招,嘿嘿
gowinder
2012-01-11 16:33:22 +08:00
优化是第一步.
如果确实查询很多,就要应该用多线程.
最根本还是数据库设计的问题.
wpc009
2012-10-09 14:19:28 +08:00
@napoleonu 异步解决高并发的重要手段。这一点我是支持LZ的。你提到的优化,目的是缩减同步IO的阻塞时间。众所周知,同步阻塞IO要处理并发就得开n个线程。线程少了会来不及处理,线程多了切换上下文的消耗会严重降低吞吐量。 相比之下,异步IO仅需需要少量线程就可以达到很高的吞吐量,但是前提是线程不能被阻塞。也就是说少量的线程必须一直保持激活状态并且快速处理请求。这种环境下异步数据库接口就显得十分重要了。
qsun
2012-10-09 14:50:11 +08:00
libdrizzle
Js
2012-10-09 16:18:06 +08:00
不如从了postgresql吧....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/25267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX