专业编程基础技术教程

网站首页 > 基础教程 正文

MySQL存储引擎MyISAM与InnoDB的区别

ccvgpt 2024-10-12 14:02:01 基础教程 10 ℃

#头条创作挑战赛#

MyISAM引擎:

MySQL存储引擎MyISAM与InnoDB的区别

MyISAM引擎原本是Mysql的默认引擎,不提供事务的支持,也不支持行级锁和外键。

MyISAM引擎的特性:

不支持事务。

表级锁定。

读写互相堵塞。

只会缓存索引,不会缓存数据。

读取速度较快,占用资源较少。

不支持外键约束。

支持全文索引。

Innodb引擎:

Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。

Innodb引擎的特性:

插入缓冲(insertbuffer)

二次写(doublewrite)

自适应哈希索引(ahi)

预读(readahead)



区别:

①Innodb支持外键,MyISAM不支持外键。

②Innodb支持事务,MyISAM不支持事务。

③Innodb索引是聚簇索引,MyISAM索引是非聚簇索引。

④Innodb的主键索引的叶子节点存储着行数据,因此主键索引会非常高效;MyISAM索引的叶子节点存储的是行数据地址,需要再寻址一次才能得到数据。

⑤Innodb支持主键,MySIAM不支持主键。

⑥Innodb非主键索引的叶子节点存储的是主键和其他带索引的列数据,因此查询时做到覆盖索引会非常高效等。MySIAM因为不支持主键,所以没有非主键。

最近发表
标签列表