首页 > 其他分享 >知识点2-1 B+树(5)myISAM简介

知识点2-1 B+树(5)myISAM简介

时间:2022-09-26 14:11:48浏览次数:56  
标签:知识点 简介 聚簇 主键 叶子 索引 myISAM 节点

myISAM简介

MyISAM的B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。主索引和辅助索引没啥区别,只是主索引中的key一定得是唯一的。这里的索引都是非聚簇索引。

MyISAM的B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。主索引和辅助索引没啥区别,只是主索引中的key一定得是唯一的。这里的索引都是非聚簇索引。MyISAM还采用压缩机制存储索引,比如,第一个索引为“her”,第二个索引为“here”,那么第二个索引会被存储为“3,e”,这样的缺点是同一个节点中的索引只能采用顺序查找。

InnoDB的数据文件本身就是索引文件,B+Tree的叶子节点上的data就是数据本身,key为主键,这是聚簇索引非聚簇索引,叶子节点上的data是主键(所以聚簇索引的key,不能过长)。为什么存放的主键,而不是记录所在地址呢,理由相当简单,因为记录所在地址并不能保证一定不会变,但主键可以保证

==============================================================================================

myISAM每次查询都是必须要回表的

我们知道了innoDB搜索引擎的是索引即是数据,分为列表值索引树,和聚簇索引树,聚簇索引那颗b+树索引即是数据,所有的用户记录数都存在叶子节点。而myISAM虽然也是B+树,但索引和数据是分开的

myISAM会吧用户记录数据全部放在一个文件里,称为数据文件,这个文件不会划分若干页,有多少记录就往里面塞,通过每一行对应的行号快速访问,因为随意塞入,不会按主键大小排序,不能用二分查找法查找

之后会吧索引信息存储到另一个索引文件里,myISAM会单独为表的主键创建索引,只不过在叶子节点存储的不是用户记录数据,而是主键+行号,意味着找到到对应行号之后,会用行号去数据文件里再次找全部数据。所以myISAM每次查询都是必须要回表的,相当于二级索引。(innoDB的聚簇索引是直接在根目录记录页根据主键找到对应的内节点,在找到对应的底层叶子节点上的全部数据)

有需要的话,也可以建立二级索引或者联合索引,只是叶子节点存放的是列值+行号

标签:知识点,简介,聚簇,主键,叶子,索引,myISAM,节点
From: https://www.cnblogs.com/liyanxi/p/16730634.html

相关文章

  • 今日部分知识点总结———SQL注入,hooks的优缺点,cookies,xxxStorage的区别,BFC,合并二叉
    SQL注入在浏览器页面用户提交数据处,输入特定的字符实现sql语句的篡改,从而对数据库进行操作。比如在一个登录界面,要求输入用户名和密码,可以这样输入实现免帐号登录;用户名......
  • 知识点 1: MySQL的回表
    1:聚簇索引和非聚簇索引是什么?MySQL的索引有不同的角度的分类方式,例如:按数据结构分、按逻辑角度分、按物理存储分其中,按物理存储分有两种索引:聚簇索引和非聚簇索引。 ......
  • 机器学习简介
    1.人工智能发展必备三要素数据、算法、计算力(CPU\GPU\TPU)CPU、GPU对比:CPU适合IO密集型任务;GPU适合计算密集型任务。2.人工智能、机器学习、深度学习关系人工智......
  • MySQL常用知识点梳理
    删表DROPTABLEIFEXISTS表名;新建表createtable表名(字段名类型约束(逐渐,非空,唯一,默认值),字段名类型约束(逐渐,非空,唯一,默认值),)编码,存储引擎;约束N......
  • 【mongo 系列】聚合知识点梳理
    什么是聚合数据?我们先来看看是是聚合数据数据聚合(DataAggregation)是指合并来自不同数据源的数据。.聚类也称聚类分析,亦称为群集分析,是对于统计数据分析的一门技术,在......
  • WiFi知识点
    WiFi名字的由来  Wi-Fi这个术语经常被误以为是指无线保真(WirelessFidelity),类似历史悠久的音频设备分类:长期高保真(1930年开始采用)或Hi-Fi(1950年开始采用)。即便是Wi-F......
  • 面试知识点:JavaScript主任务、微任务
    JavaScript主任务、微任务、宏任务的执行顺序,输出1-9setTimeout(function(){console.log('7')});newPromise(function(resolve){console.log('1');r......
  • golang知识点
    1.“=”和“:=”在golang中“=”是赋值(使用=号赋值必须先var声明使用)varaa=100varb=100varcint=100“:=”是声明变量后并赋值(:=是声明并赋值并且系统自......
  • pycharm简介及python基础知识
    1、昨日内容回顾计算机五大组成部分(补充)控制器与运算器合称CPU。储存器分内存(临时)与外存(长久)。计算机三大核心硬件CPU,计算机的中枢神经,程序运行必须依靠CPU。内......
  • Splunk简介,部署,使用
    简介Splunk是一款功能强大,功能强大且完全集成的软件,用于实时企业日志管理,可收集,存储,搜索,诊断和报告任何日志和机器生成的数据,包括结构化,非结构化和复杂的多行应用程序日志......