MySql底层原理

MySql有两种存储引擎MyISAM和InnoDB

1.MyISAM

MyISAM是非聚集索引,底层是使用B+树作为索引结构。

非聚集索引的定义:索引的逻辑顺序与磁盘上的数据行物理存储顺序不同。

 

 

 当一个表的存储引擎是MyISAM时,表所在文件夹中会出现.MYD和.MYI文件。其中.MYD中存储的排序好的索引,叶子结点中存储的在.MYI中数据的地址。

以下表为例:以empno列作为主键索引.

 2.InnoDB

InnoDB 是聚集索引,底层也是使用B+树作为索引结构。

聚集索引的定义:索引的逻辑顺序与磁盘上的数据行物理存储顺序相同。叶子结点中存储的是整行数据。

3.MyISAM和InnoDB两个存储引擎的区别

 

 

InnoDB支持外键,MyISAM不支持外键。

InnoDB表必须有主键(用户没有指定的话会自己找或生产一个主键),而Myisam可以没有。

Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYI。

InnoDB支持表、行(默认)级锁,而MyISAM支持表级锁。

InnoDB是聚集索引,MyISAM是非聚集索引。

 

posted @ 2020-08-11 14:30  luckyzoe  阅读(366)  评论(0)    收藏  举报