mysql 的配置应该如何选择和升级? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
raysonlu
V2EX    程序员

mysql 的配置应该如何选择和升级?

  •  
  •   raysonlu 2019-09-16 19:38:22 +08:00 2434 次点击
    这是一个创建于 2216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近公司业务量又上来了,白天看着 RDS 的 CPU 又要将近跑满,抱着“充钱就能好”的思想,不得不去升级配置了。

    但为什么要升级配置,应该升到多少,以及如何预防并提起做好准备?排除了磁盘空间、内存、慢 SQL 问题,搜阅了不少资料,知道了什么 QPS,TPS 等等,但也停留在一个知道这些是啥、怎样观察到这些数值的程度,对于配置的升级找不到参考点。比如说,QPS 是 2000 左右,就会把 2 核 4G 的 mysql 机将近跑满 CPU 了?

    类似这种运维、DBA 的问题,没有大神亲手带带真感觉迷茫,遇到问题未必找准方向,也未必能在网上搜到结果,本人 phper 想往运维架构方面发展,在小公司小团队里有很多实际接触的机会,奈何一只困在这个瓶颈找不到方向和方法突破。

    求各路大神为小弟指(使)点(劲)迷(喷)津

    11 条回复    2019-09-17 11:52:21 +08:00
    AngryPanda
        1
    AngryPanda  
       2019-09-16 19:44:38 +08:00
    这种事情抛开业务去谈,你找不到答案。

    [比如说,QPS 是 2000 左右,就会把 2 核 4G 的 mysql 机将近跑满 CPU 了?]

    就说这个问题,2000QPS 是什么类型的查询?是否命中缓存,是否使用索引,扫描多少数据行,是否存在临时表,返回结果集多少,数据规模多大,都影响这个问题的回答。

    变量太多了。
    raysonlu
        2
    raysonlu  
    OP
       2019-09-16 20:00:58 +08:00
    @AngryPanda 是的,这个我也知道,但我应该如何去判断和查找问题所在?
    比如说 2 核 4G 的机应该大致能跑到怎样的性能?究竟是什么方面导致 CPU 跑高?有无什么方法可以一一排查?总不能看见控制台监控显示的 CPU 飙高,就充钱升级这么被动吧?
    opengps
        3
    opengps  
       2019-09-16 20:46:48 +08:00
    一切以压测为准!这就是够不够用的判断依据
    gz911122
        4
    gz911122  
       2019-09-16 23:06:47 +08:00
    @raysonlu
    可以先大致的看下高性能 mysql 这本书
    有个大概的认知.

    但是归根结底还是哪里不够加哪里,毕竟升级配置比重构代码省钱啊
    raysonlu
        5
    raysonlu  
    OP
       2019-09-16 23:10:39 +08:00
    @gz911122 那本天书,感觉不知道怎样看进去,总是看得似懂非懂的感觉。升配置是最快的方法,但这样盲目的升感觉也不是法子啊
    lancerliu
        6
    lancerliu  
       2019-09-16 23:14:59 +08:00
    先把慢查询都解决了吧
    airfling
        7
    airfling  
       2019-09-17 08:46:54 +08:00
    执行 sql :show full processlist 查看慢 SQL,这些 sql 该优化的优化,该建索引的建索引,如果还慢,你再升级
    raysonlu
        8
    raysonlu  
    OP
       2019-09-17 09:36:34 +08:00
    @lancerliu
    @airfling 慢查询这些早就优化,甚至阿里的控制台也展示得明明白白的。
    salamanderMH
        9
    salamanderMH  
       2019-09-17 11:02:38 +08:00
    看看慢查询,然后看看有没有命中索引
    msg7086
        10
    msg7086  
       2019-09-17 11:46:53 +08:00
    2000qps 如果是简单查询,应该跑不满一个核心吧。
    我之前写的 bt tracker 程序,好点的机器上单线程能跑出 10000qps 以上。
    但是如果是比较复杂的查询,可能 200qps 就跑满核心了。
    具体还是要看业务,查询复杂程度。

    另外,2000qps 的话确实可以考虑上好点的机器了,比如说便宜的独服,i3 或者 i5 的机器,可能比你的双核 VPS 快得多。
    lihongjie0209
        11
    lihongjie0209  
       2019-09-17 11:52:21 +08:00
    先无脑升级, 直到你觉得价钱无法接受的时候再去研究优化
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5171 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 09:31 PVG 17:31 LAX 02:31 JFK 05:31
    Do have faith in what you're doing.
    ubao 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