为什么mysql_commit这么慢?

时间:2012-10-15 09:17:25

标签: c++ mysql

我是一个使用MYSQL的新人。

代码是:

void gdns_mysql::commit_task()
    {
        if (mysql_commit(conn) != 0)
        {
            throw_trackerr_str(boost::format("MysqlCommitError %d %s") % mysql_errno(conn) % mysql_error(conn));
        }
    }

此函数commit_task总是花费6~7秒 我想知道为什么会发生这种情况? 请列出一些原因。谢谢

顺便说一下: 查询如下:

void gdns_mysql::update_server_status(std::string const& server_, std::string const& status_)
    {
        stringstream sql;
        sql << "update server";
        if (!status_.empty()) sql << " set status = '" << get_escape_string(status_) << "'";
        else sql <<" set status = status_predict";
        sql << " where serverip = '" << get_escape_string(server_) << "'"
            << endl;
        execute(sql.str());
    }

并且

zone_ptrs_t  gdns_mysql::query_zone_bykey(std::string const& zonename_)
    {
        string statement = "select * from zone";
        bool where_flag = false;
        if (!zonename_.empty())
        {
            statement += " where zonename = '" + get_escape_string(zonename_) + "'";
            where_flag = true;
        }
        select(statement);
        return fetch_datas<zone_t>();
    }

0 个答案:

没有答案