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

多大数据量的表联表查询会很慢呢?

  •  
  •   lsw518598 · 2023-10-14 11:17:11 +08:00 · 2118 次点击
    这是一个创建于 404 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近的项目在一个表中存的主键,然后去另一个表中去联表,表的数据都是 k 级别的,并且业务要做多字段全模糊匹配,所以需要查询多次再 union 而且不能用到索引,子查询和联表都用上了,那这种数据级别用 join 会有效率问题吗?
    12 条回复    2023-10-16 07:01:21 +08:00
    zjp
        1
    zjp  
       2023-10-14 13:10:54 +08:00
    看 explain ,不用猜
    lsw518598
        2
    lsw518598  
    OP
       2023-10-14 13:17:52 +08:00
    @zjp 现在手头还没有实际的数据,想着要是有有经验的老哥可以提前分析解惑一下,就可以避免生成测试数据了,还挺麻烦的 不过还是感谢解答
    yinaqu
        3
    yinaqu  
       2023-10-14 14:07:31 +08:00
    数据都是 K 级别的,是指只有几千条么
    lsw518598
        4
    lsw518598  
    OP
       2023-10-14 16:29:37 +08:00
    @yinaqu 对的 单独每个表里只有几千条的 join
    yinaqu
        5
    yinaqu  
       2023-10-14 16:32:16 +08:00
    就几千条数据,多烂的 sql 都不会有什么大问题
    lsw518598
        6
    lsw518598  
    OP
       2023-10-14 16:47:27 +08:00
    @yinaqu join 我记得是使用笛卡尔积,那么联查的时候会不会等于是 k*k=m 级别的数据里查询呢?刚工作开发经验比较少,谢谢哥指教
    sylxjtu
        7
    sylxjtu  
       2023-10-14 16:49:05 +08:00 via Android
    @lsw518598 慢主要慢在读盘上,所以肯定比从 k*k 个数据里读快
    lsw518598
        8
    lsw518598  
    OP
       2023-10-14 17:16:42 +08:00
    @sylxjtu 好的~ 那我有信心继续往下做了 hhh
    di94sh
        9
    di94sh  
       2023-10-14 19:46:45 +08:00 via iPhone
    就几千条全在 buffer pool 里了
    h19981126g
        10
    h19981126g  
       2023-10-14 19:54:54 +08:00
    explain analyze 看下,不是全盘扫就行,有索引基本不慢
    LeeReamond
        11
    LeeReamond  
       2023-10-15 23:25:17 +08:00
    不同后端情况不同,个人经验不做优化的话单表 1e6 连表 1e5 数量级就感觉到有明显 qps 下降了
    xuanbg
        12
    xuanbg  
       2023-10-16 07:01:21 +08:00
    连表查询慢首先要看执行计划,执行计划没问题,那就是数据量的问题。数据量问题也不一定是单表量大的问题,有可能只是笛卡尔积比较大的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1051 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:09 · PVG 03:09 · LAX 11:09 · JFK 14:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.