SQL语句类似这样 update table set content=newcontent where id=ID;其中id是主键,content是一个text字段。content大约几K到十几K大小。在Mysql客户端查询正常,但在自己的程序里提交慢得无法容忍,而且程序还无缘无故中断。数据表中大约60万条数据,不算太大,用select查询也非常快。
我的开发环境:linux, Myql5.0.22, c++,程序和数据库在局域网的不同服务器上
请高手帮忙解决!

解决方案 »

  1.   

    另外replace函数我也用了,同样不管用。
      

  2.   

    text字段的更新 估计是很慢要不试试 删除该行记录 重新插入会快点~
      

  3.   

    这招也试过了,insert也很慢,谢谢!
      

  4.   

    你程序中的代码是什么?既然 在Mysql客户端查询正常则说明不是MYSQL上的问题。但在自己的程序里提交慢得无法容忍,而且程序还无缘无故中断。 显然要检查你的程序。
      

  5.   

    geniuslinchao 
      '截至2010-08-09 14:48:19  用户结帖率0.00%当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
    http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
    http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html8、如何给分和结贴?
    http://community.csdn.net/Help/HelpCenter.htm#结帖
      

  6.   

    程序应该不存在错误,因为同一个mysql连接执行其他SQL语句没问题,比如查询和删除
      

  7.   

    string updateQuery = "update topic_info_001 set content='" + content + "' where topic_id=" + topicID;
     if (mysql_query(&sqlConForUpdate, updateQuery.c_str()))
                                    {
                                            cout << "error" << ":" << mysql_errno(&sqlConForUpdate) \
                                                            << ":" << mysql_error(&sqlConForUpdate) << endl;
                                    }else{
                                            cout << "update " << topicID << "success!" << endl;
                                    }
    }
      

  8.   

    string updateQuery = "update topic_info_001 set content='12345' where topic_id=" + topicID;改成如上,测试一下速度如何。如果速度不慢,则看一下你的
    string updateQuery = "update topic_info_001 set content='" + content + "' where topic_id=" + topicID;
    实际内容是什么? 怀疑是你的C++中的 string 相加需要过多的时间能否做一下单步调试,看是哪一步慢。
      

  9.   


    问题解决了,谢谢!但不知道是什么原因,我改用了一个封装的mysql类就没问题,之前mysql连接是自己写的。