假设我有大约1Tb的SQL电子邮件数据,其中包含以下字段:
email, email_host, username, first_name, last_name, last_login
有人告诉我SELECT * FROM emails WHERE email_host = 'gmail.com'
之类的MySQL查询运行得有点慢...我们正在谈论30分钟或更长时间。
我想试用Couchbase,但不确定如何对数据进行非规范化并构建views
。根据Couchbase自己的视频教程课程,似乎一种可能的方法是创建一个“密钥”,例如:
u::gmail::incremented_id
或
u::john::incremented_id
然后仅获取所有u::gmail
以具有与gmail地址相对应的密钥列表,而不是查询所有文档并检查email_host
属性是否为gmail
。
[[将样本数据集进行非规范化是一种合法/良好的策略,如果是,创建预索引u::whatever
的视图的正确技术是什么?假设我有大约1Tb的SQL电子邮件数据,其中包含以下字段:email,email_host,用户名,first_name,last_name,last_login我被告知像SELECT * FROM emails这样的MySQL查询...
function(doc) {
if (doc.type == 'user')
emit(doc.email_host, doc);
}