V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
xatest
V2EX  ›  MySQL

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

  •  
  •   xatest ·
    aoxu · 2012-01-09 21:54:01 +08:00 · 13671 次点击
    这是一个创建于 4491 天前的主题,其中的信息可能已经有所发展或是发生改变。
    参考: http://stackoverflow.com/questions/38447/asynchronous-mysql-connector-for-c-or-c

    MySQL的原生API都是同步调用的,会阻塞在网络上,请问是否有比较可靠的异步连接、发送、接收的C/C++实现方法,可以把MySQL的基本操作(增删改查原子操作)以网络事件通知异步实现?
    9 条回复    1970-01-01 08:00:00 +08:00
    gowinder
        1
    gowinder  
       2012-01-10 22:50:05 +08:00
    要自己封装,做异步操作完成通知,如果是单连接,要做操作队列,不然要做连接池,mysql api好像不支持异步
    xatest
        2
    xatest  
    OP
       2012-01-11 10:22:46 +08:00
    @gowinder 谢谢,目前我的打算是用操作队列缓冲+连接池~
    napoleonu
        3
    napoleonu  
       2012-01-11 10:38:51 +08:00
    这样做的目的是什么呢,或者是为了解决什么问题呢?
    xatest
        4
    xatest  
    OP
       2012-01-11 13:16:58 +08:00
    @napoleonu 解决MySQL写操作较多时比较慢的问题~
    napoleonu
        5
    napoleonu  
       2012-01-11 13:52:21 +08:00
    @xatest 既然你没有特别的需求,那么你应该优化写,而不是想这种怪招,嘿嘿
    gowinder
        6
    gowinder  
       2012-01-11 16:33:22 +08:00
    优化是第一步.
    如果确实查询很多,就要应该用多线程.
    最根本还是数据库设计的问题.
    wpc009
        7
    wpc009  
       2012-10-09 14:19:28 +08:00
    @napoleonu 异步解决高并发的重要手段。这一点我是支持LZ的。你提到的优化,目的是缩减同步IO的阻塞时间。众所周知,同步阻塞IO要处理并发就得开n个线程。线程少了会来不及处理,线程多了切换上下文的消耗会严重降低吞吐量。 相比之下,异步IO仅需需要少量线程就可以达到很高的吞吐量,但是前提是线程不能被阻塞。也就是说少量的线程必须一直保持激活状态并且快速处理请求。这种环境下异步数据库接口就显得十分重要了。
    qsun
        8
    qsun  
       2012-10-09 14:50:11 +08:00
    libdrizzle
    Js
        9
    Js  
       2012-10-09 16:18:06 +08:00
    不如从了postgresql吧....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2723 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:23 · PVG 19:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.