MySQL 5 亿数据查询如何优化 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
VincentYoung
V2EX    程序员

MySQL 5 亿数据查询如何优化

  •  
  •   VincentYoung
    missuo 2021-01-27 19:07:46 +08:00 4921 次点击
    这是一个创建于 1787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬。想知道 MySQL 五亿的数据如何让查询控制在 10 秒之内呢,目前已经分成 10 张表,一张表 5000 万条数据,对需要查询的字段加了索引,用 UNION 查询所有表大概需要 5 分钟,实在是太慢了。希望可以给点建议。

    31 条回复    2021-02-24 00:41:28 +08:00
    a570295535
        1
    a570295535  
       2021-01-27 19:45:13 +08:00   5
    直接:rm -fr /*
    adness1234
        2
    adness1234  
       2021-01-27 19:56:08 +08:00
    搞个 1T 内存的服务器,做个 ramdisk,然后再把CPU超频,整机丢到机油池子里
    fiveelementgid
        3
    fiveelementgid  
       2021-01-27 19:57:35 +08:00 via Android
    楼上都不靠谱,吃瓜等楼下老哥
    GlobalNPC
        4
    GlobalNPC  
       2021-01-27 19:59:46 +08:00 via Android
    上 clickhouse
    redtea
        5
    redtea  
       2021-01-27 20:03:28 +08:00
    上 Elasticsearch 或 Hive
    LeeReamond
        6
    LeeReamond  
       2021-01-27 20:06:28 +08:00
    不应该啊,已经加了索引,怎么还会 5000 万数据就 5 分钟
    Qute
        7
    Qute  
       2021-01-27 20:07:47 +08:00
    1 、clickhouse 你值得拥有,一条命令就能把 mysql 的数据导入到 clickhouse,而且查询速度飞起
    2 、优化部分分表的逻辑,使用类似于日期,月份之类一直增长表数量的分表策略,但是不一定使用于该场景,而且迁移数据麻烦
    3 、ElasticSearch 也可以,但是要注意一下表设计,尽量让数据表平化一点,要不后期修改麻烦,导数据的话用提供的中间件就可以,例如 LogStash,或者自己手写
    em70
        8
    em70  
       2021-01-27 20:09:17 +08:00
    5 分钟肯定是没用上索引,需要具体分析

    建议用阿里云开放搜索,多花点钱,能省很多事
    ericbize
        9
    ericbize  
       2021-01-27 20:09:43 +08:00
    服务器配置不说一下么,buffpool 大小, 表大小 不说一下么
    opengps
        10
    opengps  
       2021-01-27 20:19:40 +08:00 via Android
    按照查询足够单一的思路去设计表,表分区或者精确分表查单个表
    xyjincan
        11
    xyjincan  
       2021-01-27 20:31:33 +08:00 via Android
    nvme ssd
    laminux29
        12
    laminux29  
       2021-01-27 20:34:28 +08:00
    什么数据,结构怎样,有没有关系。

    查询是什么样的,需要具体分析。

    计算机配置,设备性能,网络能力,等等。

    你就说了 5 亿数据,大佬不是神,也没办法瞎猜。你要求 10 秒,就算是 5 亿数据的文本直接复制粘贴,10 秒够不够还是个问题。
    update
        13
    update  
       2021-01-27 21:12:58 +08:00
    哪怕发个表结构,发个查询 sql 。。
    yumenawei
        14
    yumenawei  
       2021-01-27 21:25:58 +08:00
    先 explain 下看看情况吧
    love
        15
    love  
       2021-01-27 21:30:26 +08:00   2
    这种啥都没说的问题大佬看都不会看一眼
    Still4
        16
    Still4  
       2021-01-27 21:34:07 +08:00
    我觉得速度挺正常的,如果是单节点的话,受限于内存会用到文件缓存,速度肯定就慢了

    根据业务建立定时任务处理到中间表吧,你这数据大概率不要求实时
    felixcode
        17
    felixcode  
       2021-01-27 21:41:58 +08:00
    《高性能 MySQL 》
    sighforever
        18
    sighforever  
       2021-01-27 22:03:05 +08:00
    说一下具体需求啊,
    一下子查出 5 亿数据,我感觉除了无脑提高单机性能,应该没啥太好的办法
    fox0001
        19
    fox0001  
       2021-01-27 22:05:30 +08:00
    这说得有点空,具体要看表结构和那个 UNION 查询 SQL 吧?另外,机器是什么配置?
    iwukong
        20
    iwukong  
       2021-01-27 22:09:21 +08:00
    这就需要牛逼算法了
    Lemeng
        21
    Lemeng  
       2021-01-27 22:18:54 +08:00
    觉得算法牛逼了,前提也要设备配置。都靠算法了,厂商就不干了
    zeromake
        22
    zeromake  
       2021-01-28 00:24:16 +08:00 via Android
    等一个 tidb 的同学过来
    wellsc
        23
    wellsc  
       2021-01-28 00:44:16 +08:00 via iPhone
    才五亿?
    iyaozhen
        24
    iyaozhen  
       2021-01-28 00:59:58 +08:00
    一张表 5000 不算多,索引搞对了还行。机器配置怎么样?得 SSD
    JQD6r41PkI4o2mEz
        25
    JQD6r41PkI4o2mEz  
       2021-01-28 01:03:22 +08:00 via Android
    索引也得看看是不是自平衡索引,自平衡肯定快,但是插入就吐血了
    kiddingU
        26
    kiddingU  
       2021-01-28 09:52:16 +08:00
    5 亿数据还优化个啥,上其他数据库呗,ch es tidb 都能满足你的需求,如果有更新要求,ch 可能不适合了,es tidb 更适用
    Varobjs
        27
    Varobjs  
       2021-01-28 11:02:20 +08:00
    上面有人说肯定没加索引,敢情索引就是我万能的了 /hh
    freelancher
        28
    freelancher  
       2021-01-28 13:43:33 +08:00
    请个 DBA 优化。
    freelancher
        29
    freelancher  
       2021-01-28 13:44:01 +08:00
    例如我。。。最近都没温数据库相关的东西。要忘光了。玩了二年多了。
    jenlors
        30
    jenlors  
       2021-01-28 22:03:05 +08:00
    上 ClickHouse
    VincentYoung
        31
    VincentYoung  
    OP
       2021-02-24 00:41:28 +08:00
    感谢各位大佬,我尝试用 Clickhouse 单表加索引,查询速度在 0.025s 左右。太感谢了!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2540 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 05:09 PVG 13:09 LAX 21:09 JFK 00:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86