关于索引及锁的问题
来源:6-4 索引优化策略(中)

慕粉1559449418
2020-10-07
老师,你好
1、对于复合索引,在mysql中实际创建了几个索引,举个例子
2、对于复合索引,mysql是如何在索引列上进行数据检索的,内部创建了几个BTREE,如何在BTREE上检索数据的,
3、关于mysql的 innodb的B+Tree实现原理是怎样的,如果不能详尽的描述,能否推荐几个比较靠谱的文章
4、单列索引和复合索引哪个执行效率高
5、行级锁会造成死锁吗?举个例子
6、表锁、行锁哪个开销大,为什么
7、innodb的行锁为什么是对索引加锁
写回答
1回答
-
sqlercn
2020-10-08
一个复合索引就是一个索引
复合索引是一个以最在侧例进行排序的Btree,所以使用复合索引要遵循最左侧例的原则。
关于B+tree的原理,网上文章很多,比如下面这个
https://baijiahao.baidu.com/s?id=1628226562020721873&wfr=spider&for=pc
4.这个要看具体的查询
5.死锁是指不同事务占用了对方需要的资源,所以行级锁也会有死锁,比如事务1 需要 A,B 两行数据,先锁定了A行数据,事务2同时也需要A,B 两行数据,但是先锁定了B行,这时事务1,2 就会产生死锁
6.innodb只有行锁,一般锁的粒度越小开锁越大。
7.因为innodb本身就是聚集索引组织表。
00
相似问题