900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 【Mycat 发展遇到的瓶颈问题】

【Mycat 发展遇到的瓶颈问题】

时间:2021-01-15 21:54:04

相关推荐

【Mycat 发展遇到的瓶颈问题】

【Mycat 发展遇到的瓶颈问题】

这两个问题不但是目前Mycat遇到的问题,也是分布式其他系统遇到的问题,解决方案只能寻求折中,要么时间换空间,要么空间换时间。

1、多重聚合问题

比如我有一个日志表:部门 、用户、模块、访问时间..........,现在有一个如下的需求:实时统计哪个部门哪个用户,在某一个时刻,访问哪个系统模块最多。

select

部门 、用户、访问时间、模块、 count(*) as cn

from 某个表

group by部门 、用户、访问时间、模块

order bycn desc

遇到海量数据的时候,mycat直接歇菜了

2、深度分页问题

在集群系统中深度分页

为了理解为什么深度分页是有问题的,让我们假设在一个有5个主分片的索引中搜索。当我们请求结果的第一页(结果1到10)时,每个分片产生自己最顶端10个结果然后返回它们给请求节点(requesting node),它再排序这所有的50个结果以选出顶端的10个结果。

现在假设我们请求第1000页——结果10001到10010。工作方式都相同,不同的是每个分片都必须产生顶端的10010个结果。然后请求节点排序这50050个结果并丢弃50040个!

你可以看到在分布式系统中,排序结果的花费随着分页的深入而成倍增长。这也是为什么网络搜索引擎中任何语句不能返回多于1000个结果的原因。

为什么请求第1000页——结果10001到10010需要返回10010个结果?

因为根据不同的维度统计,你的每一条数据在整个系统中的排序位置不清楚,所以需要汇聚每个机器10010的结果,来做最后的排序。

查看图片附件

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。