浅谈Mysql查询优化——面试题目

1. 首先,分析SQL查询速度慢的原因(如果连如何分析出查询慢的方法都不懂,谈何优化)

方法一:可以开启慢查询日志,进行分析,不要直接打开慢查询日志进行分析,这样比较浪费时间精力,可以使用pt-query-digest工具进行分析。

方法二:使用show profile方法进行分析,进入mysql,设置set profiling=1;开启,服务器上执行的所有语句会检测消耗的时间,存到临时表中,使用show profiles 和show profile for query 临时表ID进行查询分析。

方法三:使用show status,会返回一些计数器,show global status查看服务器级别的所有计数,有时根据这些计数,可以猜测出哪些操作代价较高或者消耗时间多。

方法四:使用show processlist观察是否有大量线程处于不正常的状态或者特征。

方法五:使用explain分析单条SQL语句。

2. 接着就进行SQL语句优化

2.1 优化查询过程中的数据访问

(1)查询不需要的记录时候,使用limit解决

(2)尽量避免使用select * 查询,可以指定需要的字段进行查询

(3)重复查询相同的数据,可以缓存数据,下次可以直接读取缓存

(4)可以把经常作为where条件的字段作为索引

未完待续。。。。。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值