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
    评论
课程简介: 课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程。对于难以理解的知识点,全部用画图+实战的方式讲解。 第一部分:彻底明白事务的四个特性:原子性、一致性、隔离性、持久性,用场景和事例来讲解。 第二部分:实战讲数据库事务的6中并发异常:回滚丢失、覆盖丢失、脏读、幻读、不可重复读、MVCC精讲。 第三部分:彻底搞清楚4种事务隔离级别:READ_UNCOMMITTED 读未提交隔离级别、READ_COMMITTED 读已提交隔离级别、REPEATABLE_READ 可重复度隔离级别、SERIALIZABLE 序列化隔离级别 第四部分:彻底搞清楚MySQL的各种:行、表、共享、排它、Next-Key、间隙、X、S、IS、IX、死索引、意向等。 第五部分:彻底搞清楚Spring事务的7种传播级别的原理和使用:PROPAGATION_REQUIRED、PROPAGATION_SUPPORTS、PROPAGATION_MANDATORY、PROPAGATION_REQUIRES_NEW、PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER、PROPAGATION_NESTED分布式事务的理论基础:RPC定理、BASE理论、XA协议都是什么,原理是什么,有什么关联关系 第六部分:分布式事务的5种解决方案原理和优缺点:2PC两阶段提交法、3PC三阶段提交法、TCC事务补偿、异步确保策略、最大努力通知策略 第七部分:阿里巴巴分布式事务框架Seata:历经多年双十一,微服务分布式事务框架,用一个Nacos+Spring Cloud+Seta+MySql的微服务项目,实战讲解阿里的分布式事务技术,深入理解和学习Seata的AT模式、TCC模式、SAGA模式。 课程资料: 课程附带配套2个项目源码72页高清PDF课件一份阿里巴巴seata-1.1.0源码一份阿里巴巴seata-server安装包一份

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值