C++ 使用libmysql连接Mysql数据库问题

1、大家有没有什么好的方法能够检测判断与数据库的连接是否正常,如果连接不正常mysql_query就会报错导致程序崩溃。我目前的办法就是捕获异常,捕获到我就置链接状态为FALSE,再使用则需要重连。
2、数据量大的时候查询一直没有返回,导致关闭程序一直在等待线程,产生死锁一样的东西。我现在是直接超时强杀线程。有没有什么好办法能够设置超时返回或强制中断返回查询结果。我之前想法是将查询ID查出来,然后kill掉,但是好像这也是一种查询语句,上一次查询未返回,是否能查到MYSQL查询ID,我程序里查询都是使用临界了。

你socket链接不设置超时的吗?