mysql的优化级别一

Mysql的优化层次

一 数据库优化的目的
1 避免由于数据库连接timeou产生页面5xx开头的错误
2 避免慢查询造成页面无法加载
3 由于阻塞造成数据无法提交(因为一些服务器的内部锁的原因,当大并发的去更新某一个字段的时候,可能会在这个字段上产生阻塞)当阻塞超过一定时间,可能就会造成事务的回滚,影响正常业务的进展

二 数据库优化的级别
1 以优化的性能来说最高效的优化是sql语句的优化和建立合适的索引(建立有效的索引,有时候不一定是索引越多越好 )
2 其次是注意数据库表的结构设计(严格遵守三范式 字段不可在拆分 主键依赖 不可传递依赖)
3 在其次是系统配置的优化(mysql数据库实际上是基于文件的,没查询一张表都要打开一些文件)打开文件数的限制 如果达到了限制的打开文件的数据量 可能就会造成频繁的io操作
4 最后也是效果最次的优化 是用硬件角度的优化 更快的IO 更大的内存

注意锁的机制 因为锁是保持数据库数据完整一种机制可能I O很快 但可能并不能减少阻塞

三 通过慢查询日志观察sql的执行情况 确定他是否需要优化

1 show variables like ‘slow_query_log’ 查看是否开启了慢查询日志
(set global slow_quert_log=on)
2 show variables like ‘%log%’; 查看都有哪些日志参数
3 set global log_queries_not_using_indexes=on; 将未使用 索 引的sql记录到慢查询日志当中 设置为on 打开
4 set global long_query_time=0.1 把超过多少秒的查询记录到慢查询日志中
5 show variables like ‘slow%’ 查看慢查询日志记录的位置
在这里插入图片描述
在这里插入图片描述
在生产环境下会产生大量的慢查询日志 所以需要用到一些工具方便就行观察 生成的sql日志

pt-quret-dugest 慢查询日志分析工具

explay 查询sql的执行计划

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值