Mysql 针对特定需求的NoSQL建议

Mysql 针对特定需求的NoSQL建议,mysql,nosql,bigdata,Mysql,Nosql,Bigdata,我使用的MySql表具有以下简单结构: 身份证号码:int 8 身份证号码:int 8 主键:ID\u A,ID\u B 索引:ID_B 这个MySQL表包含超过5亿行,权重为20Go 我需要能够执行此类查询: select *,count(*) as cpt from table group by ID_A order by cpt DESC select *,count(*) as cpt from table group by ID_B order by cpt DESC select

我使用的MySql表具有以下简单结构:

身份证号码:int 8

身份证号码:int 8

主键:ID\u A,ID\u B 索引:ID_B

  • 这个MySQL表包含超过5亿行,权重为20Go

  • 我需要能够执行此类查询:

    select *,count(*) as cpt from table group by ID_A order by cpt DESC
    
    select *,count(*) as cpt from table group by ID_B order by cpt DESC
    
    select * from table where ID_A in (1,2,3,4,5,5) 
    
    select * from table where ID_B in (1,2,3,4,5,5) 
    
    select *,count(*) as cpt from table where ID_B in (1,2,3,4,5) group by ID_A order by cpt DESC
    
    select *,count(*) as cpt from table where ID_A in (1,2,3,4,5) group by ID_B order by cpt DESC
    
  • 我尝试了innodb和MyIsam,但即使使用大型配置服务器,mysql也无法按查询回答组。我甚至不能从脚本的角度来做这件事,因为它会消耗很多内存

  • 所有数据都无法放入RAM中(今天是20Go,但不久的将来是60Go)

    我们应该使用NoSql数据库吗?MongoDB?映射减少DB


    感谢您的帮助

    我从未将MongoDB用于大数据,但对于10000多个键,您可以使用MongoDB映射/减少,而不是默认的groupBy

    您可以在这里找到mongoDB文档:


    希望这能有所帮助

    我从未将MongoDB用于大数据,但对于10000多个键,您可以使用MongoDB映射/reduce而不是默认的groupBy

    您可以在这里找到mongoDB文档:

    希望这能有所帮助

    从表group by ID中选择,count()作为cpt

    呃,这将解析-但它的编程风格非常糟糕,我甚至不确定它将返回什么

    我怀疑NoSQL系统上的速度不会快很多,除非您有很多并发性,并且可以在多个服务器上分配负载(使用MySQL也可以做到这一点)。因此,您可能必须考虑切分/映射减少来并行化请求(同样意味着多个服务器)

    撇开奇怪的SQL不谈,为什么不直接对数据进行非规范化—添加ID_A和ID_B计数的表,然后在现有表上放置触发器,将数据填充到新表中

    从表group by ID中选择,count()作为cpt

    呃,这将解析-但它的编程风格非常糟糕,我甚至不确定它将返回什么

    我怀疑NoSQL系统上的速度不会快很多,除非您有很多并发性,并且可以在多个服务器上分配负载(使用MySQL也可以做到这一点)。因此,您可能必须考虑切分/映射减少来并行化请求(同样意味着多个服务器)


    撇开奇怪的SQL不谈,为什么不直接对数据进行非规范化—添加ID_A和ID_B计数的表,然后在现有表上设置触发器,将数据填充到新表中。

    谢谢您的回答<代码>错误,这将解析-但它的编程风格非常糟糕,我甚至不确定它将返回什么。使用group by获取行数的最佳方法是什么?关于非规范化,您的意思是在表更新时使用MySql触发器吗?谢谢您的回答<代码>错误,这将解析-但它的编程风格非常糟糕,我甚至不确定它将返回什么。使用group by获取行数的最佳方法是什么?关于非规范化,您的意思是在表更新时使用MySql触发器吗?谢谢。我将循环到此文档,但我想知道MongoDb是否是这种简单数据结构的最佳解决方案。谢谢。我将循环到此文档,但我想知道MongoDb是否是这种简单数据结构的最佳解决方案。