MySql优化的一些点
chenlong 发布:2021-10-22 17:51:16阅读:1.MySql优化可以优化哪些方面
表设计(结构)上 范式,存储引擎,字段类型
功能上 索引,分区,缓存
sql语句上 合理sql(经验)
架构(配置)上 分库分表 主从复制 读写分离 负载均衡
2 Count和Max统计函数优化
Max统计查询考虑使用覆盖索引(如果有其他函数计算会索引失效,但是max是求最大值,索引本身就是按大小排好的,所以max,min都不会失效)
Count count(*)包含为NULL的列 count(id)不包含为NULL的列
3 子查询优化
通常情况下,把自查询有华为join查询,但是需要注意是否存在一对多的关系(父查询纪录里面一跳关联子查询里面多条),这种自查询优化为join需要去重。 需要在select后面加distinct。
4 Group By优化
(子查询场景,在最内层增加where条件能减小开销)
5 Limit优化
(选择合适的索引,减少扫描行)
6 其他SQL优化总结
慎用select *,改为Select id,name...这种查询,节省带宽的功能。
分解复杂查询,慎用子查询、join这些操作涉及锁,影响并发。
优化insert,多个value的情况使用Insert into test values(1,2),(3,4) 这种批量插入。
使用连接(JOIN)来代替子查询。
使用联合(UNION)来代替手动创建的临时表。
用EXISTS替代IN、用NOT EXISTS替代NOT IN。
where子句 where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在where子句的末尾.having最后。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧