SQL优化--发现问题

1、Mysql客户端连接成功后,通过show status命令可获取服务器状态信息。通过判断com_insert和com_select以及更新和删除来判断当前数据库的应用是以插入更新为主还是以查询操作为主,以及更重类型的SQL大致的执行比例是多少。注意,对于更新操作的计算,是对执行次数的技术,不论提交还是回滚都会进行累加。
2、接着通过两种方式定位执行效率较低的SQL语句:

  • 通过慢查询日志定位那些执行效率较低的SQL语句。
  • 可以使用show processlist命令查看昂前MySQL在进行的线程,包括线程的状态、是否锁表等,可以实时地查看SQL的执行情况,同时对一些锁表操作进行优化。

3、通过explain分析低效SQL的执行计划。
explain select from…*
可以的得到几个参数:id,select_type,table,type
注意:type为访问类型,

  • All是全表扫描
  • index索引全扫描
  • range索引范围扫描(常用于<、<=、>、>=、between等操作符)
  • ref唯一索引的前缀扫描或非唯一索引扫描(等值查询条件)
  • eq_ref仅限于唯一索引,表中只有一条记录匹配,多表连接中使用pk或者unique index作为关联条件。
  • const/system根据主键pk或者唯一索引unque index进行的查询。
  • NULL不用访问表或者索引,直接得到结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值