Mysql之识别SQL性能问题(重点)

一、定位慢查询SQL

截取SQL语句的方式:
         全面日志查询
         慢SQL日志查询
         二进制日志查询
         进程列表查询
         引擎状态
         TCP/IP

  注意:关注运行最慢的SQL查询并不是SQL语句优化的唯一技术需求,优化执行频率高的语句同样能够显著改进系统性能,因为这样可以让你的数据库系统能够处理更多的SQL语句。
 

慢SQL日志查询

1、开启慢查询日志

2、分析日志,定位SQL

进程列表查询

show processlist 命令,查询慢SQL

 

二、分析SQL

使用EXPLAIN命令分析SQL的执行计划

三、调优

对表或SQL的调优,要基于数据量多少来判断是否有调优的必要

1、SQL性能关注层面:SQL对应业务有无优化空间、表设计是否合理、索引失效是否可以优化

2、SQL问题分析步骤:确认SQL对应业务->确认表数据量大小->查看表索引使用情况->查看SQL执行计划

SQL的优化:
1. 索引的优化(索引的类型\使用条件) 
2. 执行计划的优化
3. 减少没有必要的SQL
4. 在业务层能处理的尽可能在业务层处理(limit的分页\绑定变量)
5. 表结构的设计是否合理(尽可能使用int型主键\不存大数据的字段\字段类型的选择)
6. 数据库系统文件类型的选择
7. 数据库服务器本身的性能 
8. 当你无法决定使用哪些索引,使用哪些表连接的时候,请交给mysql自己决定

现在主流的sql优化方向是:
1. 业务本身有没有优化的空间
2. 表的设计是否合理
3. 索引失效的情况优化

1、索引失效优化

2、数据库表结构设计不合理

  ID不是int,字段内容过大,字段过多,磁盘IO性能差,不必要的数据库操作。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值