V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cage111
V2EX  ›  程序员

求助:复杂关联查询加上全文检索如何做到秒级响应?

  •  
  •   cage111 · 2022-01-25 10:55:50 +08:00 · 1608 次点击
    这是一个创建于 1033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一开直接始用 sql 的 like 查询试了下太慢,之后用 sql 来 in Elasticsearch 中查出的 id ,id 如果太多也比较慢,不知道还有啥方法?

    4 条回复    2022-01-26 14:25:04 +08:00
    sun2920989
        1
    sun2920989  
       2022-01-25 11:06:33 +08:00
    全丢 es 呢?
    cage111
        2
    cage111  
    OP
       2022-01-25 11:55:22 +08:00
    全丢 es 感觉比较麻烦,sql 比较长涉及表比较多,还没试过
    sampeng
        3
    sampeng  
       2022-01-25 16:14:47 +08:00
    这是两个问题
    1.复杂关联查询,一般是八股文了关系型设计模式的。说明表依赖过多。优化表结构,制作一个宽表。抹平各种关系表。换句话说,可能这条查询并不适合关系型数据库,并不是一个 OLTP 的场景,应该转化成一个 OLAP 的业务场景。最简单的办法就是复杂关联查询建立一个视图,如果数据库支持固化视图就很好。如果不支持,定时倒到另一个 OLAP 的系统里面非常好处理。
    2.全文检索如果懒得扔 es ,es 确实重。但确实是最简单的一个解决方案,在复杂可控就是自己写全文检索引擎。。lucene 的接口已经很干净了,自己做有工作量,但不是做不了。

    另外,业务型接口,秒级是很慢很慢很慢了。。基本要求 100ms 甚至 30ms 一个接口完成功能请求
    Geekerstar
        4
    Geekerstar  
       2022-01-26 14:25:04 +08:00
    ETL+ES
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2519 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.