MySQL的索引、事务、锁、调优

参考的文章链接

目录

MySQL的索引、事务、锁

MySQL调优

数据库查询数据的注意点

使用了索引,线上查询还是很慢,怎么解决?

MySQL读写遇到瓶颈,怎么解决?

总结:


MySQL的索引、事务、锁

MySQL调优

数据库查询数据的注意点

  • 尽量使用索引覆盖,减少回表所消耗的时间。即查询时知名对应的列,而不是select *
  • 如果组建联合索引,尽量将区分度最高的放最左边,考虑最左匹配原则
  • 对索引进行函数操作或表达式计算会导致索引失效
  • 利用子查询优化超多分页场景
  • 在开启事务后,在事务内尽可能只操作数据库,并有意识地减少锁的持有时间

使用了索引,线上查询还是很慢,怎么解决?

这种情况,一般是表的数据量太大了。

首先,考虑能不能把旧的数据删掉(但一般不会删)。然后,考虑在查询数据库之前,直接走一层缓存(redis),但这个需要考虑业务能不能忍受读取非真正实时的数据。其次,看是不是有字符串检索场景导致查询低效,若有,可以考虑将表的数据导入Elastic search类的搜索引擎。最后,可以考虑根据查询条件的维度,做相应的聚合表,线上的请求就查询聚合表的数据,不走原表。

MySQL读写遇到瓶颈,怎么解决?

  • 若是单库,考虑升级至主从架构,实现读写分离
  • 若是主从架构,考虑分库分表

总结:

  • 数据库表存在一定数据量,就需要有对应的索引发现慢查询时,检查是否走对索引,是否能用更好的索引进行优化查询速度
  • 当索引解决不了慢查询时,一般由于业务表的数据量太大导致,利用空间换时间的思想(NOSQL、聚合、冗余...)
  • 当读写性能均遇到瓶颈时,先考虑能否升级数据库架构即可解决问题,若不能则需要考虑分库分表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值