数据库优化

1.首先要排除缓存干扰,mysql8.0以前sql是会缓存的,可以加SQL NoCache去排除

2.可以开启慢sql日志定位到慢sql,然后explain查看执行计划,重点关注字段

rows:为了查找数据而读取的行数;该数据可能不准,因为mysql采用采样统计,会统计n个数据页,然后取一个均值,再乘以索引页数,可以用analyze table tablename来重新统计索引信息

possible_keys : 可能使用的索引;

key : 真实使用的索引

key_len : MySQL中使用索引字节长度

3.索引的使用:索引有聚集索引和辅助索引

聚集索引:即为主键索引,特点是叶子结点上存储了数据,不需要回表操作,效率较高

辅助索引:(普通索引)是非主键索引,叶子结点存储了数据的主键索引,需要回表操作

覆盖索引:如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表,将单列索引升级为联合索引可以提高效率避免回表操作,最左匹配原则:对于复合索引,如果最左边的索引没有执行,后面的索引也无法执行

changebuff:对于修改操作,如果在内存里就直接更新,如果不在,在保证数据一致性的前提下,innodb会将这些更新操作存放在changebuff里面,这样就不需要从磁盘里读取该数据,当需要读取数据的时候回触发merge操作,即将changebuff里与该数据有关的操作执行,changebuff是持久化的数据,在内存中有拷贝,在后台mysql会定时merge。使用场景:对于主键索引,因为要满足唯一性约束,所以要把数据从磁盘读入内存,也就不需要再去保存修改操作了,所以只适用于普通索引。尤其对于写多读少的场景非常适合,最常见的账单、日志类的的系统

      

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值