我正在编写需要与mysql通信的应用程序。它是一个单线程应用程序,它使用epoll linux系统调用来复用客户端,但问题是每当我对数据库进行(重)查询时,一切都会停止。所以我想从mysql中获取实际的socket并将其放入我的epoll中,这样我也可以复用数据库。这可能吗?
答案 0 :(得分:1)
文章http://jan.kneschke.de/2008/9/9/async-mysql-queries-with-c-api/回答了这个问题。适用于MySQL 5.6。
答案 1 :(得分:0)
比这复杂一点。如果“一切都停滞不前”(只能猜测你的技术意义)那么你的MySQL服务器可能会超载。多路复用单个连接不仅可能不起作用,而且也不会解决根本问题。
相反,修复您的查询和索引,以便不会发生大型表扫描和文件排序。