为了在我的网站上为用户添加统计信息和跟踪,我一直在考虑保留网页浏览量和其他频繁发生事件的最佳方法.现在,我的网站显然不是Facebook的大小,以保证他们实施的一些策略(例如,甚至不需要分片),但我想避免任何明显愚蠢的错误.
似乎最简单的跟踪方法是在表中只有一个整数列.例如,每个页面都有一个页面视图列,每个页面视图只会增加1.如果人们以比数据库写的速度更快的速度访问页面,这似乎是一个问题.
例如,如果两个人同时点击该页面,那么在previous_pageview两次更新之前计数将是相同的,并且每次更新都会将其更新为previous_pageview+1而不是+2.但是,假设数据库写入速度为10毫秒(我相信这非常高),您需要每秒一百页的浏览量,或者每天数百万的综合浏览量.
那么,对我来说只是增加一个列是没关系的吗?确切的数字不是太重要,所以这里有一些错误是可以容忍的.如果同一行有很多列,那么一列上的更新语句是否会变慢?(我的猜测是否定的.)
我有这个计划使用一个单独的No-SQL数据库来存储pk_[stat]->value每个stat的对,快速递增,然后运行一个cron作业来定期更新MySQL值.这感觉有点矫枉过正; 有人请向我保证,确实如此.
由于Hypertable和HBase似乎是两个主要的开源BigTable实现,这两个数据库之间的主要优缺点是什么?
此外,BigTable和SQL RDBMS之间的主要优缺点是什么,以及在使用像Postgres和Hypertable这样的传统RDBMS编写项目之间可以有什么显着的差异?
我的表有一个由字符串索引的数组,我希望所有与该字符串匹配的记录,无论值是什么.例如,获取所有记录,其中id1是填充:
var a = {
type: "Information",
ids: {
'id1' : '123'
'id2' : '456'
}
};
var b = {
type: "Information",
ids: {
'id1' : '789'
}
};
Run Code Online (Sandbox Code Playgroud)
用mongodb可以做到这一点吗?
我知道有这些阻塞驱动程序并使用它们但我正在寻找非阻塞节点驱动程序.谢谢.
我想在Cassandra中存储大约10亿条数据.数据项按时间排序,我要做的一个主要查询是按顺序查找两个时间范围之间的项目.如果可能的话,我真的更喜欢使用RandomParititioner.在Cassandra有办法做到这一点吗?
起初,因为我来自SQL,我假设我应该将每个事件创建为一行,但后来我发现我正在考虑错误的方式而且我应该使用列.Cassandra中的列似乎是有序的,但我对它们的有序性感到困惑.如果我使用时间作为列名,有没有办法让我按顺序将所有列从一次到另一次?
我看到的另一件事是二级索引的0.7特性,但是我找不到文档是否可以使用这些来按顺序查看一系列内容.
我想要的只是这个SQL的Cassandra等价物:"选择*来自Stuff,其中日期> X和日期<Y按日期排序asc".我怎样才能做到这一点?
我开始研究Cassandra,我对它提供的内容印象深刻,但同时我读到了Reddit在迁移到Cassandra之后如何进行消防演习,以及Twitter决定不将其用于推文.虽然那些大约一年前左右,但我想知道最新版本是否准备好迎接黄金时段了吗?
我正在构建类似延迟行的东西:一个进程将对象放入一个列表中,另一个LPOP以相同的顺序出现.
诀窍是,对象只应在添加后一小时从列表中弹出.我可以使用时间戳.所有项目的延迟都是相同的,永远不会改变.
现在我如何以并发友好的方式实现pop(这样当几个worker访问该列表时它仍然有效)?我可以取出一个项目,检查时间戳并将其放回列表中,如果它还为时尚早.但如果几个工人同时这样做,可能会破坏物品的顺序.我可以检查第一个项目,只有在它到期时才弹出它.但是另一个工人可能已经弹出它然后我弹出错误的一个.
我应该使用WATCH命令吗?怎么样?我应该使用排序集而不是列表吗?帮助赞赏!
我正在考虑将一个非常大的应用程序(Rails 3.0.10)从我们的SQL数据库(SQLite和Postgres)切换到MongoDB.我计划将所有内容放入其中,主要是utf-8字符串,二进制文件和用户数据.(也许还有一点全文搜索)我有复杂的关系(网络结构:类别,标签,翻译......,多态也)我觉得MongoDB的理念是避免这种情况并将所有内容放在大文档中,我是对的?
有没有人在Rails中有MongoDB的经验?特别是将应用程序从ActiveRecord切换到Mongoid?你认为这是个好主意吗?你知道一篇指导/文章来学习MongoDB组织复杂数据的方法吗?
ps:在MongoDB中,我特别喜欢它的架构及其性能导向所提供的自由.考虑切换是我个人的主要动机.
再次,抱歉我的愚蠢问题,但似乎我从关系数据库中学到的东西应该"擦除",没有连接,那么我将如何绘制使用NoSql中的Merise和UML?
http://en.wikipedia.org/wiki/Class_diagram
这个不适用于NoSql吗?
nosql ×10
mongodb ×3
redis ×3
cassandra ×2
node.js ×2
concurrency ×1
django ×1
hbase ×1
hypertable ×1
mongoid ×1
mysql ×1
postgresql ×1
rdbms ×1
sql ×1
statistics ×1