现在有个业务,有很多关联的关系。大致如下:
比如退款和账单对应订单是 N-1,保单对应服务项也是N-1,现在在mysql中就是6个表,每个N方的数据项都保留了1方的id。
现在想把这个查询关系放入es中,跨多表查询效率比较低。
查询条件有很多种组合,例如通过订单信息查退款,通过工资信息查询服务项,甚至通过保单查询订单信息。
这样的话我也要设计6个索引,每个N方绑定1方的id,查询的时候也要先查一个索引再查另一个索引.还有可能是多个条件来自多个表,比如根据订单时间和账单时间过滤等等。
感觉维护6个索引很麻烦,如果数据有更新,更新的就不止一个索引。而且es的目的是外置索引,提升查询效率的,这样一来很有可能一个查询要搜索1次1以上,感觉效率也不高。。这种业务一般怎么处理呢
比如退款和账单对应订单是 N-1,保单对应服务项也是N-1,现在在mysql中就是6个表,每个N方的数据项都保留了1方的id。
现在想把这个查询关系放入es中,跨多表查询效率比较低。
查询条件有很多种组合,例如通过订单信息查退款,通过工资信息查询服务项,甚至通过保单查询订单信息。
这样的话我也要设计6个索引,每个N方绑定1方的id,查询的时候也要先查一个索引再查另一个索引.还有可能是多个条件来自多个表,比如根据订单时间和账单时间过滤等等。
感觉维护6个索引很麻烦,如果数据有更新,更新的就不止一个索引。而且es的目的是外置索引,提升查询效率的,这样一来很有可能一个查询要搜索1次1以上,感觉效率也不高。。这种业务一般怎么处理呢
1 个回复
yayg2008
赞同来自:
如果想只用ES来查,可以将数据整合成一个款表后写到ES,数据允许有冗余,尽量单index查询。