位置:首页 > 后端 > 数据库

MySql优化的一些点

chenlong 发布:2021-10-22 17:51:16阅读:

1.MySql优化可以优化哪些方面

  1. 表设计(结构)上 范式,存储引擎,字段类型

  2. 功能上 索引,分区,缓存

  3. sql语句上 合理sql(经验)

  4. 架构(配置)上 分库分表 主从复制 读写分离 负载均衡


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优化总结

  1. 慎用select *,改为Select id,name...这种查询,节省带宽的功能。

  2. 分解复杂查询,慎用子查询、join这些操作涉及锁,影响并发。

  3. 优化insert,多个value的情况使用Insert into test values(1,2),(3,4) 这种批量插入。

  4. 使用连接(JOIN)来代替子查询。

  5. 使用联合(UNION)来代替手动创建的临时表。

  6. 用EXISTS替代IN、用NOT EXISTS替代NOT IN。

  7. where子句 where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在where子句的末尾.having最后。

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看