zoukankan      html  css  js  c++  java
  • mysql底层索引与数据结构算法学习

    索引  数据结构

      二叉树  从根节点查找数据,左边的数据小于根节点的数据,右边的数据大于根节点的数据

      红黑树  平衡二叉树

      Hash表

      B-Three 叶子节点具有相同的深度,叶节点指针为空,所有索引元素不重复,节点中的所有数据索引从左到右一次递增

      B+Three 叶子节点不存data,只存索引,可以放更多索引,叶子节点包含所有索引字段,叶子节点使用指针连接,提高区间访问性能

    一个叶子节点的大小是16kb

      大部分时间在加载数据到内存,在内存中二分查找数据很快(数据结构主要是减少磁盘io)

      

    搜索引擎   MyISAM

      InnoDB 聚集索引 叶子节点包含完整的数据记录(数据跟索引不在同一个表中)

    innoDB建表为什么建议添加主键?整型自增

      用于维护b+tree   (不见索引会挑选一列不同的来维护,否则就会增加一个隐形的类维护索引)   整型便于比较大小(uuid比较大小麻烦)

      自增主键   

      hash不支持范围查找,存在hash冲突,效率比b的索引相对快一点

      复合索引的工作原理?

      索引是排好序的数据结构

      最左前缀原理(排好序的)

      

    加油,每天都是精彩的一天
  • 相关阅读:
    修改Oracle数据库的字符集为UTF-8
    yum源的更新问题
    Spark的编译
    hadoop版本和位数的查看方法
    hadoop2.x通过Zookeeper来实现namenode的HA方案以及ResourceManager单点故障的解决方案
    zookeeper3.4.6的安装
    SQL SERVER回滚恢复误操作的数据
    SQLServer异常捕获
    111111
    sql分割函数
  • 原文地址:https://www.cnblogs.com/xining/p/14546379.html
Copyright © 2011-2022 走看看