Pau*_*l B 10 couchdb mongodb nosql
我目前运行一个基于MySQL的网站,用户在每次有人完成广告时都会宣传广告并获得收入.我们会在每次有人观看广告("展示"),每次用户点击添加("点击")以及每次有人完成广告("潜在客户")时进行记录.
由于我们获得了如此多的流量,因此我们在每个相应的表中都有数百万条记录.然后,我们必须查询这些表,以便让用户了解他们已经获得了多少,因此我们最终在一个请求中多次对数百万行的表执行多次查询,同时进行数百次.
我们正在寻求从MySQL迁移到键值存储或类似的东西.我们需要能够存储所有这些数百万行的内容,以毫秒为单位查询它们,最重要的是,使用adhoc查询我们可以查询任何单个列,因此我们可以执行以下操作:
FROM前导WHERE country ='US'和user_id = 501(显然是NoSQL等价物)
FROM点击WHERE ad_id = 1952 AND user_id = 200 AND country ='GB'
等等
有没有人有任何好的建议?我正在考虑使用MongoDB或CouchDB,但我不确定他们是否能够处理每秒多次查询数百万条记录以及我们需要的特殊查询类型.
谢谢!
有了这些要求,如果遇到负载问题,最好还是坚持使用SQL并设置复制/群集.您可以在文档数据库上设置索引,以便可以进行这些查询,但是您实际上并没有获得当前系统的任何内容.
NoSQL系统通常省略了关系系统的一些更复杂的功能,从而提高了性能.这意味着只有在您的方案不需要这些功能时,它们才会有用.对表格数据运行即席查询正是SQL的设计目标.
如果您的工作集可以容纳在内存中,并且您在文档中索引了正确的字段,那么您就一切就绪了。你的要求不是很典型,我确信只要有适当的硬件、正确的集合设计(非规范化!)和索引,你应该可以顺利进行。阅读 Mongo 查询,并用于explain()
测试查询。我的建议是远离IN
和条款。NOT IN
归档时间: |
|
查看次数: |
6477 次 |
最近记录: |