MyISAM和InnoDB

InnoDB

InnoDB 中 B+ 树的数据结构中存储的都是实际的数据,这种索引又被称为聚集索引

由于 InnoDB 利用的数据库主键作为索引 Key,所以 InnoDB 数据表文件本身就是主索引。

  • 所以使用 InnoDB 作为数据引擎的表需要有个主键
  • 如果没有显式指定的话 MySQL 会尝试自动选择一个可以 唯一标识数据的列作为主键
  • 如果无法找到,则会生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。

 

MyISAM

MyISAM 中 B+ 树的数据结构存储内容是实际的地址值,它的索引和实际数据是分开的,只不过使用索引指向了实际数据,这种索引的模式成为非聚集索引

在 MyISAM 中,主索引和辅助索引(Secondary key )在结构上没有任何区别:

MyISAM 中索引检索的算法为首先按照 B+Tree 搜索算法搜索索引,如果指定的 Key 存在,则取出其 data 域的值,然后以 data 域的值为地址,读取相应数据记录。

 

 

 

参考链接:https://github.com/Apriluestc/2020/blob/master/doc/MySQL/README.md

posted @ 2020-04-12 10:28  Rogn  阅读(259)  评论(0编辑  收藏  举报