mysql一些索引相关知识

数据库锁类型

排它锁:数据对象被加锁后,其他事务不能对其读取和修改 共享锁:数据被加锁后,其他事务可以对其读取,但是不能进行修改操作

死锁

死锁案例 线程1:SELECT * FROM user WHERE id in (3,5) FOR UPDATE; 线程2:SELECT * FROM user WHERE id in (4,5,6) FOR UPDATE; id为5的用户已经被锁住了,所以这里会报错超时

存在的行会进行行锁,不存在的行会导致范围锁 线程1:SELECT * FROM user WHERE id in (1111) FOR UPDATE; 如果1111是不存在,且比user表最大的id大,则锁1111到无穷大区域;如果1111是不存在,且比user表最小的id小,则锁1111到无穷小区域;如果1111不存在,且是在某个区间,则锁该区间的行锁

聚集索引和非聚集索引

索引失效

索引类型

mysql索引类型壳分为B-tree,hash,fulltext,r-tree