zoukankan      html  css  js  c++  java
  • 数据库面试总结

    背景:将找工作过程中,数据库相关的知识在此总结,一定要静心筛选,方便以后查看。——20190303

    平衡二叉树、B树、B+树、B*树 理解其中一种你就都明白了

    https://zhuanlan.zhihu.com/p/27700617

    平衡二叉树特点:

    (1)非叶子节点最多拥有两个子节点;

    (2)非叶子节值大于左边子节点、小于右边子节点;

    (3)树的左右两边的层级数相差不会大于1;

    (4)没有值相等重复的节点;

    B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树

    B树的特点:

    B树相对于平衡二叉树的不同是,每个节点包含的关键字增多了,特别是在B树应用到数据库中的时候,数据库充分利用了磁盘块的原理(磁盘数据存储是采用块的形式存储的,每个块的大小为4K,每次IO进行数据读取时,同一个磁盘块的数据可以一次性读取出来)把节点大小限制和充分使用在磁盘快大小范围;把树的节点关键字增多后树的层级比原来的二叉树少了,减少数据查找的次数和复杂度;

    B+树的特点

    1、B+树的层级更少:相较于B树B+每个非叶子节点存储的关键字数更多,树的层级更少所以查询数据更快;

    ps:B+树的非叶子节点不保存关键字记录的指针,只进行数据索引,这样使得B+树每个非叶子节点所能保存的关键字大大增加

    2、B+树查询速度更稳定:B+所有关键字数据地址都存在叶子节点上,所以每次查找的次数都相同所以查询速度要比B树更稳定;

    3、B+树天然具备排序功能:B+树所有的叶子节点数据构成了一个有序链表,在查询大小区间的数据时候更方便,数据紧密性很高,缓存的命中率也会比B树高。

    4、B+树全节点遍历更快:B+树遍历整棵树只需要遍历所有的叶子节点即可,,而不需要像B树一样需要对每一层进行遍历,这有利于数据库做全表扫描。

    B树相对于B+树的优点是,如果经常访问的数据离根节点很近,而B树的非叶子节点本身存有关键字其数据的地址,所以这种数据检索的时候会要比B+树快。

    相同思想:采用二分查找和数据平衡策略来提升查找数据的速度

    不同点:这些数据结构在演变的过程中通过IO从磁盘读取数据的原理进行一步步的演变,每次演变都是为了让节点的空间更加合理的运用起来,从而使树的层级减少,打到快速查找的目的。

     

    MySQL高级 之 explain执行计划详解

    ps: 详细讲解explain中各个字段的含义

    https://blog.csdn.net/wuseyukui/article/details/71512793

    MySQL explain执行计划解读

    MySQL优化之EXPLAIN详解

    id ,select type,table,type,key,exta

    type:访问类型,sql查询优化中一个很重要的指标,结果值从好到坏依次是:

    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

    一般来说,好的sql查询至少达到range级别,最好能达到ref

    当发起一个被索引覆盖的查询(也叫作索引覆盖查询)时,在EXPLAIN的Extra列可以看到“Using index”的信息

      

    理解MySQL数据库覆盖索引

    简单介绍一下MySql中的覆盖索引

     数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩

  • 相关阅读:
    Dapper的基本 理论 知识
    路由
    WebForm+一般处理程序+Ajax聊天
    Jquer + Ajax 制作上传图片文件
    (3.4)表相关操作之完整性约束
    (3.3)表相关操作之数据类型
    (3.2)表相关操作之表的增删改查
    (3.1)表相关操作之存储引擎介绍
    常用模块
    模块与包
  • 原文地址:https://www.cnblogs.com/lixuwu/p/10464053.html
Copyright © 2011-2022 走看看