Mysql
Contents
InnoDB的索引模型
在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。InnoDB使用了B+树索引模型,所以数据都是存储在B+树中的。 主键索引的叶子节点存的是整行数据。在InnoDB中,主键索引也被称为聚簇索引。 非主键索引的叶子节点内容是主键的值。在InnoDB中,非主键索引也被称为二级索引。
基于主键索引和普通索引的查询有什么区别?
主键索引的查询方式只需要搜索到ID这颗B+树(叶子节点上有完整的数据),普通索引查询需要先查询索引树找到ID的值,再到ID索引树搜索一次。这个过程称为回表。
最左前缀原则
若有a索引,b索引各自的查询以及有联合查询的时候,a的查询频率高于b或者a的字段长度比b大,创建联合索引a_b
索引下推
Mysql5.6引入索引下推优化,可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。
全局锁
全局锁就是对整个数据库实例加锁。 加锁后其他线程的数据更新,数据定义语句,更新类事务的提交都会被阻塞。 典型使用场景是做全库逻辑备份。
表级锁
mysql里面表级锁有两种:一种是表锁,一种是元数据锁。 语法:lock tables … read/write