请选择 进入手机版 | 继续访问电脑版

NoahFrame

 找回密码
 Register Now
搜索
热搜: redis mysql tutorial
查看: 772|回复: 1

NFMysqlClusterPlugin中sql语句的问题

[复制链接]

1

主题

1

帖子

21

积分

Newbie

Rank: 1

积分
21
发表于 2017-2-14 10:07:40 | 显示全部楼层 |阅读模式

我看到所有的sql语句都是指定了strRecordName 这个数据库,查询的条件都是strDefaultKey
例如下面的query函数
query << " FROM " << strRecordName << " WHERE " << strDefaultKey << " = " << mysqlpp::quote << strKey << ";";

那我想问下,我如果是跨表联合查询,而且查询条件有多个,此时应该怎么弄呢
回复

使用道具 举报

30

主题

111

帖子

632

积分

Administrator

Rank: 9Rank: 9Rank: 9

积分
632
发表于 2017-2-15 03:37:30 | 显示全部楼层
bool NFCMysqlModule:uery(const std::string& strRecordName, const std::string& strKey, const std::vector<std::string>& fieldVec, std::vector<std::string>& valueVec)
{
    NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver();
    if (pDriver)
    {
        return pDriver->Query(strRecordName, strKey, fieldVec, valueVec);
    }

    return false;
}

多字段查询。

关于跨表查询,建议不要使用,原因很多。
首先有一个原则,数据尽量是区get而不是search。
其次,我们的数据库实例肯定不只一个,比如有50,100点时候,跨表查询会找上有的数据库上执行一遍,造成巨大的资源浪费(运维也不会让你这样做的,你上线之前还是要改成kv结构),因此一般都是 通过算法把某些数据固定在某些节点上面,然后get数据,这样效率较高。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | Register Now

本版积分规则

 

GMT+8, 2018-8-15 19:35 , Processed in 0.067038 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表