Hi 各位大大
现有架构为 a b c 三个数据库
倘若我要取10笔搜寻结果 ,则会分成三台机器,
a机器查一次吐回1-10笔 给main
b机器查一次吐回1-10笔 给main
c机器查一次吐回1-10笔 给main
再由一台 main 做条件的排序,过滤等等
再取1-10笔,显示搜寻结果
假设我要取回来的结果依照某个属性来做groupby
则会a,b,c数据库 搜寻时做一次groupby
吐回给main时 再做一次groupby ,防止a b c互相有重复的资料。
问题来了
假设有一笔资料 groupby之后 是再a数据库的第11笔,但是再b数据库是第一名
依照现行做法 会导致groupby记数错误每一笔资料的group_total 非正确结果
有没有一种算法能够推估出依照 a b c某笔资料的排名,来设定出应该要取几笔最安全
,ex: 都取抓的目的资料笔数的3倍/5倍,
无奈现行分配查寻机制无法更动,又考量到一次全部查询会有效率上的问题
恳请各位专家解惑