MySQL这块除了索引等八股文外,MySQL调优就是面试中的重点和难点,回答的闭环性很重要,本文提供回答思路及真实的生产案例。一起卷。
目的:什么的原因让你去做个事情
我们一般调整的是慢SQL。什么叫慢SQL,是执行的时间超过阈值后的SQL叫慢SQL,这个SQL会保留在慢SQL日志里。
SQL慢有两种
使用Explian命令可以查看使用的使用。如下图所示,我们可以看到可能使用到的索引possible_keys和实际使用到了索引key。从而确定索引是否合理,SQL是否合理。
索引不合理
索引建的列没有区分度(比如男女),索引最好建多列索引。
SQL不合理
SQL查询的字段太多,SQL的where条件顺序乱
mysql的limit查询竟然有坑
比如分页场景,我现在的SQL 如下。
SELECT * FROM tb_creative where id in (40个)
在有索引且数据量大的情况下,其实优化SQL是没有办法(能做的都做了)。
可以从业务角度解决问题,我每页20,那这个这个SQL就会快一些。
SELECT * FROM tb_creative where id in (20个)
把SQL拆开,千万别用并发(重点是没有串行快)
SELECT * FROM tb_creative limit id in (前20个)
SELECT * FROM tb_creative limit id in (后20个)
面试回答的时候要有理有据。
当然,数据大了可以分布式。
分布式主键:分布式主键生成策略
分库分表:HASH
分布式事务:分布式事务
说完了,面试官就顺其自然的问下面的问题了。然后半小时过去了,嘻嘻。
本文发布于:2024-02-05 02:32:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170722020262217.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |