Mysql 针对特定需求的NoSQL建议
我使用的MySql表具有以下简单结构: 身份证号码:int 8 身份证号码:int 8 主键:ID\u A,ID\u B 索引:ID_BMysql 针对特定需求的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
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
感谢您的帮助我从未将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是否是这种简单数据结构的最佳解决方案。