数据库两大必备神器:索引和锁底层道理是什么!
副问题[/!--empirenews.page--]
【51CTO技能沙龙】10月27日,让我们配合试探AI场景化应用实现之道
一、索引 在之前,我对索引有以下的认知:
看起来仿佛啥都知道,但口试让你说的时辰也许就GG了:
1、聊聊索引的基本常识 起首Mysql的根基存储布局是页(记录都存在页里边):
以是说,假如我们写select * from user where username = 'Java3y'这样没有举办任何优化的sql语句,默认会这样做:
很明明,在数据量很大的环境下这样查找会很慢! 2、索引进步检索速率 索引做了些什么可以让我们查询加速速率呢? 着实就是将无序的数据酿成有序(相对): 要找到id为8的记录扼要步调: 很明明的是:没有效索引我们是必要遍历双向链表来定位对应的页,此刻通过"目次"就可以很快地定位到对应的页上了! 着实底层布局就是B+树,B+树作为树的一种实现,可以或许让我们很快地查找出对应的记录。 3、索引低落增编削的速率 假如一棵平凡的树在极度的环境下,是能退化成链表的(树的利益就不复存在了) B+树是均衡树的一种,是不会退化成链表的,树的高度都是相比拟力低的(根基切合矮矮胖胖(平衡)的布局)【这样一来我们检索的时刻伟大度就是O(logn)】!从上一节的图我们也可以望见,成立索引现实上就是成立一颗B+树。
4、哈希索引 除了B+树之外,尚有一种常见的是哈希索引。 哈希索引就是回收必然的哈希算法,把键值换算成新的哈希值,检索时不必要相同B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可立即定位到响应的位置,速率很是快。
看起来哈希索引很牛逼啊,但着实哈希索引有好几个范围(按照他本质的道理可得):
5、InnoDB支持哈希索引吗? 主流的照旧行使B+树索引较量多,对付哈希索引,InnoDB是自顺应哈希索引的(hash索引的建设由InnoDB存储引擎引擎自动优化建设,我们过问不了)! 6、聚积和非聚积索引 简朴归纳综合:
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |