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

关于 mysql 优化

  •  
  •   zxc1234 2020 年 4 月 7 日 4186 次点击
    这是一个创建于 2158 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在面试,会被问到 mysql 慢语句的优化问题

    一般情况我都是从以下几个方面答的

    1.有没有建索引,有没有用到索引,覆盖索引,索引有没有建对

    2.limit 语句的优化

    3.join 的优化,join_buffer 参数的大小配置

    但是感觉面试官对我的评价是:mysql 优化经验不够丰富

    想问下大家,一般 mysql 优化是怎么优化法?如果你是面试官,你希望或者要求候选人答到什么程度呢?

    17 条回复    2020-04-08 18:03:14 +08:00
    sudden
        1
    sudden  
       2020 年 4 月 7 日
    插个眼,感觉你回答的挺全面的了
    opengps
        2
    opengps  
       2020 年 4 月 7 日 via Android
    面试官只是在探索你的极限思考,可能你只是没答出来他知道的那一个知识点
    苛刻一点的去优化可能符合他的意图,例如~
    能用 char 不用 varchar
    buliugu
        3
    buliugu  
       2020 年 4 月 7 日
    可能是想问 explain (逃
    xcstream
        4
    xcstream  
       2020 年 4 月 8 日
    多少数据量需要分表分库
    liyunlong41
        5
    liyunlong41  
       2020 年 4 月 8 日 via iPhone
    高性能 MySQL 上有讲很多,可以看下,然后总结下
    liyunlong41
        6
    liyunlong41  
       2020 年 4 月 8 日 via iPhone   2
    1.是否加索引
    2.能否优化,使用覆盖索引
    3.索引加的是否合适
    4.尽量使用索引来避免排序操作
    5.减少不必要的列查询,减少磁盘读取与网络传输字节
    6.大查询切分成小查询,减小加锁的事务
    7.分解关联查询,分解成单表查询然后应用层关联
    8.应用层加缓存
    9.尽可能将随机读优化为顺序读
    10.空间换时间,能否冗余一些字段减少慢查询
    11.其它等等……
    chihiro2014
        7
    chihiro2014  
       2020 年 4 月 8 日   4
    其实可以去看看 CMU 数据库的,个人感觉讲的还挺全面的
    B 站上有搬运视频可以去看看的,而且这个翻译版本很好,顺带强烈安利下他们翻译的 MIT 6.824 ,配合食用更加完美
    https://www.bilibili.com/video/av85655193
    sourceCoder
        8
    sourceCoder  
       2020 年 4 月 8 日   2
    我最近为了找工作,需要准备一些数据库基础的知识,找来找去都是一些使用层面的,没有什么深度,但是现在面试都是问的很深,底层的数据结构啊,优化这些,后来在逛 b 站的时候无意中发现的,我点进去发现是国外 CMU 的顶尖数据库课程翻译,翻译的真好,很明白,一下就戳中了我的心,这才是我想要的数据库资料,如果你想学习数据库基础的知识可以去 b 站搜索 simviso 中的 cmu 数据库课程,关键是这个 up 猪太他妈牛逼了,翻译了好多顶尖课程!!真的很良心啦,强烈
    MaxFang
        9
    MaxFang  
       2020 年 4 月 8 日 via iPhone
    6 楼的回复已经比较多了。我个人的思路是分几块。纯 SQL 层面的优化,例如 explain 索引等;代码层面的优化,如 n+1 问题;表设计优化;读写分离,主从;数据库或系统配置;缓存,消息;分表分库等。每部分具体的就不展开说了,都有很多可说的。当然有些可能有些也不全算 MySQL 优化的范畴了。
    sanggao
        10
    sanggao  
       2020 年 4 月 8 日
    你说的连十分之一都不到,我是面试官,会觉得你压根没做过大流量一点的数据库优化
    nanxingyin
        11
    nanxingyin  
       2020 年 4 月 8 日
    慢语句肯定要用 explain 分析的,重要的指标 type 、rows 、extra,type 的值 all 、index 、range 、ref 、eq_ref 等等的含义
    hbolive
        12
    hbolive  
       2020 年 4 月 8 日
    楼主问的是慢语句的优化,楼上几位虽然回答得还不错,但给整成 mysql 优化了。。
    fewok
        13
    fewok  
       2020 年 4 月 8 日
    这只是 SQL 层的优化(说破天,也解决不了硬性需求)
    可以加些其他视角的处理。比如,业务层上,有些玩意该砍的砍了(比如贴吧的老贴都砍了),该缩小范围缩小范围(比如:查询范围限制个一年 /一个月)
    中间件层也能大做文章,什么日汇总、月汇总、180 天查询、首页查询、用户行为查询、陈年老数据、上亿数据量等等,该上 ES 的上 ES 、该上 hive 的上 hive 、该全部缓存的全部缓存、该增加表的增加表,该冷热分离的冷热分离,该分库分表的分库分表。
    2379920898
        14
    2379920898  
       2020 年 4 月 8 日
    别问,问就是高性能 MYSQL 四五六章~~估计看一年也看不会
    zxc1234
        15
    zxc1234  
    OP
       2020 年 4 月 8 日
    @hbolive mysql 优化也得学啊
    zxc1234
        16
    zxc1234  
    OP
       2020 年 4 月 8 日
    @sanggao 如果是 做过大流量一点的数据库优化,那一般会回答什么内容
    qloog
        17
    qloog  
       2020 年 4 月 8 日
    可以从几个纬度进行优化:
    1 、数据库配置优化 - 主要是一些参数的配置
    2 、建表语句优化 - 字段的选型
    3 、SQl 语句的优化 - 对索引的使用程度
    4 、分库分表的思考
    5 、...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1040 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 19:02 PVG 03:02 LAX 11:02 JFK 14:02
    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