mysql数据库--锁和索引总结

为什么把锁和索引放在一起说?

1 无论是学习一个软件还是评判一个软件都可以从以下角度分析:功能,性能,可用性,可维护性

2 而性能关键点就是锁和索引

3 单个语句慢,调索引。数据库整体慢,调数据库锁设置

怎么理解性能的关键是锁和索引?

要达到最大的QPS,即吞吐量,需要保证:1 并发大,即锁的粒度小  2 单个事务执行的时间短,对开发来说,主要是sql的执行速度,关键点是索引

 

索引:

平衡二叉树------>B树------->B+树------>B*树

理论上以上树中平衡二叉树的效率是最高,因为它可以最大程序避免列表的遍历

但把索引从磁盘加载到内存是按块加载的,块大小好像是4k, 加入索引列是8字节,子节点设置为500是效率最优的

 

聚簇索引和二级索引的区别:待补充

什么时候会用到索引 ?什么时候用不到?

理论上只要where条件有该列,索引也有该列,就可以用索引。如果没用索引,则是用索引没有不用索引快。这里涉及二级索引和聚簇索引,待补充

 

锁:粒度(表  范围  行)  和  操作(共享 排斥)  随意组合使用

表:意向锁(IX IS,自增锁)

范围:间隙锁 (插入意向锁,键*锁)

行: X   S

以上锁我们可以直接使用 lock in share mode 和 for update 来加共享锁和排斥锁 , 范围是根据sql语句,引擎或处理层确定

快照读  当前读    MVCC

 

知识有点多,分成不同的日志,尽量白话不和网上相互抄的一样

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值