Java面试题总结10之MySQL索引和锁

本文详细介绍了MySQL中的索引原理,包括聚簇索引与非聚簇索引的区别,如InnoDB的主键索引和辅助索引,以及MyISAM的非聚簇索引结构。同时涵盖了哈希索引的特点和适用场景,以及MySQL锁的分类和原则。
摘要由CSDN通过智能技术生成

索引的基本原理

把无需的数据变成有序的查询

1,把创建了索引的列的内容进行排序

2,对排序结果生成倒排表

3,到倒排表内容上拼上数据地址链

4,在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据

mysql聚簇和非聚簇索引的区别

都是B+树的数据结构

聚簇索引:将数据存储与索引放到了一块,并且时按照一定的顺序组织的,找到索引就是找到数

据,数据的物理存放顺序与索引顺序时一致的,即:索引是相邻的,那么对应的数据一定的也是相

邻地放在磁盘上的

非聚簇索引:叶子节点不存储数据,存储的是数据行地址,也就是说根据索引查找到数据行的位置

再取磁盘查找数据,类似一本书的目录,比如要查找第一章第一节,那么我们先在这个目录里面

找,找到对于的页码再去对应的页码查看文章

InnoDB中一定有主键,主键一定是聚簇索引,不手动设置则会使用unique索引,没有unique索

引,则会使用数据库内部的一个行的隐藏id来当作主键索引,在聚簇索引之上创建的索引称之为辅

助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引,前缀索

引,唯一索引,辅助索引叶子节点存储的不再是行的物理位置,而是主键值

MyISAM使用的是非聚簇索引,没有聚簇索引,非聚簇索引的两颗B+树看上去没什么不同,节点的

结构完全一致,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值