4.数据库索引概述

总结:

1. 索引的作用:提高数据查询效率

2. 常见索引模型:哈希表、有序数组、搜索树

3. 哈希表:以键 - 值(key - value)存储数据的结构。

4. 哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置

5. 哈希冲突的处理办法:多个key值经过哈希函数的换算,会出现同一个值的情况,处理这种冲突的办法是在冲突值上创建一个链表。

6.哈希表适用场景:只有等值查询的场景,不适合范围查询。

7.有序数组:按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(log(N))

8.有序数组查询效率高,更新效率低

9.有序数组的适用场景:静态存储引擎。

10.二叉搜索树:每个节点的左儿子小于父节点,父节点又小于右儿子

11.二叉搜索树:查询时间复杂度O(log(N)),更新时间复杂度O(log(N))

12.数据库存储大多不适用二叉树,因为树高过高,会适用N叉树

13.InnoDB中的索引模型:B+Tree

14.索引类型:主键索引、非主键索引

    主键索引的叶子节点存的是整行的数据(聚簇索引),非主键索引的叶子节点内容是主键的值(二级索引)

15.主键索引和普通索引的区别:主键索引只要搜索ID这个B+Tree即可拿到数据。普通索引先搜索索引拿到主键值,再到主键索引树搜索一次(回表)

16.一个数据页满了,按照B+Tree算法,新增加一个数据页,叫做页分裂,会导致性能下降。空间利用率降低大概50%。当相邻的两个数据页利用率很低的时候会做数据页合并,合并的过程是分裂过程的逆过程。

17.从性能和存储空间方面考量,自增主键往往是更合理的选择。

18. 在Innodb中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。Innodb使用的B+树索引类型。每一个索引在InnoDB里面对应一棵B+树

(1)索引类型

        1)主键索引(聚簇索引),值存的是整行内容

        2)非主键索引(二级索引),值存的是主键内容

(2)B+ 树能够很好地配合磁盘的读写特性,减少单次查询的磁盘访问次数

19. 基于主键索引和普通索引的区别

(1)如果语句为select * from T where ID=500, 使用主键索引查询,只需要搜索ID这个B+树,就能能取出整行数据

(2)如果语句为select * from T where k = 5 , 使用普通索引查询,先查询k这个B+树,然后得到id的值,再搜索ID这个B+树,这个过程叫做回表。非主键索引需要多扫描一棵索引树,所以尽量用主键索引

20. InnoDB索引维护

(1)B+树为了维护索引的有序性,所以需要做索引维护。

(2)自增主键的使用场景

        1)主键长度越小,普通索引的叶子节点就越小,普通索引占用的空间也就越小

        2)业务字段做主键场景:1:只有一个索引 2:该索引必须是唯一索引 这是典型的key value场景。由于没有其他索引,估不用考虑其它索引叶子节点大小的问题,故将该值设为主键索引

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,698评论 0 44
  • 索引是应用程序设计和开发的一个重要方面。 若索引太多, 应用程序的性能可能会受到影响。 而索引太少, 对查询性能又...
    好好学习Sun阅读 1,030评论 0 4
  • 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引...
    bbe9e62bc5ba阅读 662评论 0 4
  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 2,862评论 0 8
  • 初见子时,红晕泛泛,浅笑安然、眉眼间在意自然,浑然不知日后之相处,变故如何;又见子时,霞满两颊,春风拂面、情愫暗生...
    安然1105阅读 230评论 0 0