一、索引索引数据库存储引擎为高效检索数据而设计的有序数据结构。索引分类1. 主键索引2. 二级索引普通索引、唯一索引、联合索引(1)主键索引叶子节点存整行数据(包含主键值的整行纯据(2)二级索引叶子节点只存索引键值和主键值回表通过二级索引查到主键后再拿着主键去主键索引里读取完整行数据这个二次查表操作就叫回表。索引失效本质优化器无法利用B树索引的有序特性快速定位行只能放弃索引、走全表扫描。场景1. 对索引使用左或者左右模糊匹配2. 对索引使用函数3. 对索引进行表达式计算4. 对索引隐式类型转换5. 联合索引非最左匹配6. WHERE 子句中的 OR二、锁锁MySQL锁是数据库存储引擎实现的并发控制机制用于解决多事务同时读写数据时产生的脏读、不可重复读、幻读问题通过对数据库资源库、表、数据行、索引间隙、表结构施加排他/共享约束保证并发数据安全。锁分为三大类1.全局锁2.表级锁3.行级锁(1)全局锁(全局只读锁)锁住整个数据库实例下所有库的全部表(只读)(2)表级锁(表锁)1.普通读写表锁表共享读锁、表排他写锁2.元数据锁3.意向锁(3)行级锁(行锁)1.记录锁行共享读锁、行排他写锁2.间隙锁〈锁住一段左右都开的区间〉3.临键锁〈锁住一段左开右闭的区间〉三、个人感悟索引是用写入复杂度、写入耗时换取查询时间锁是牺牲部分并发吞吐量换取事务数据一致性。所以一套解决方案是不可能达到完美的总是以某种代价去换取想要的东西。生活中也一样想要成功就得用付出的努力去换所以趁年轻趁方兴未艾趁锦绣年华去望世界走天涯。