MySQL存储引擎InnoDB与MyISAM区别
MySQL存储引擎
一、简介
MySQL存储引擎是数据库将数据组织、存储到文件中所采取的机制方式。
存储引擎发展至今,为了满足不同场景的存储需求,追求更好的性能,出现了诸如 InnoDB(MySQL5.5以后默认)、MyISAM(MySQL5.5以前默认)、Memory、CSV等存储引擎,下面就以上存储引擎的 特点、区别、使用场景 做个简要说明:
可以通过以下命令:
show engines; # 查看存储引擎
通过该命令,可以查看MySQL对各执行引擎的支持情况、说明、是否支持事务、XA(常见的是指由 X/Open 组织提出的分布式事务处理的规范.)、保存点(savepoint)
二、InnoDB
事务型数据库的首选引擎,是为处理巨大数据量时的最大性能设计。
InnoDB以二进制文件存储在磁盘上,只有一个 .ibd文件
该图InnoDB存储引擎采用的是B+树索引结构,叶子节点上存储了数据记录和索引字段(聚簇索引),并且各数据记录之间会按索引字段通过指针由小到大排序(本图中未画出),关于MySQL索引及优化会在其它文章中总结。
三、MySIAM
以二进制的形式,存储到磁盘文件上。采用MySIAM磁盘存储文件形式:.MYD 与 .MYI 两个文件。
采用MyISAM存储,存储文件形式: 注:MySQL 8.0 以后
先从索引文件.MYI中查找索引,然后在.MYD中查找数据记录 。改索引树(非聚簇索引)中非叶子节点存储索引,非叶节点(索引字段、数据记录地址)
四、特点、区别、适用场景
SHOW ENGINES; # 查看支持的存储引擎、包括默认引擎 SET DEFAULT_STORAGE_ENGINE=engine_name; # 设置默认存储引擎 ALTER TABLE table_name ENGINE=engine_name; # 修改表存储引擎
| | |