mysql数据库的引擎

it2022-05-05  296

Innodb 优点: Innodb引擎提供了对数据库ACID的事务的支持,并且实现了SQL表的四种隔离级别。该引擎还提供了行级锁和外键约束。设计目的是处理大容量数据库系统,

缺点: 不支持Fulltext类型的索引,没有保存表的函数,导致在select count(*) from table 的时候需要扫描全表, 当需要使用数据库事务时该引擎是首选,因为锁的颗粒小,写操作不会锁定全表。在高并发时。使用会提高效率。但是行级锁也不是绝对的。当执行SQL语句不能确定扫描的范围,Innodb也会锁定全表

MyIASM 优点: MyIASM保存了表的行数,在select count(*) form table 时。只需要直接读取保存好的数据。不用进行全表扫描。

缺点: MyIASM是mysql默认的引擎,但是他没有提供对数据库事务的支持,也不支持行级锁和外键,因此当insert或者update数据时需要锁定全表,效率低一些。

如果表的读操作远远多于写操作不需要数据库事务的支持,那么MyIASM是很好的支持

MEMORY MEMORY是mysql中一类特殊的储存引擎,使用存储在内存中的内容来创建表,而且数据全部放在内存中,每个基于MEMORY存储引擎的表实际对应一个磁盘文件,该文件的文件名与表相同,类型为frm类型,

优点: 数据存储在内存中,有利于数据的快速处理。提高整个表的效率。MEMORY使用哈希索引,速度比B型数索引快,当然,如果想用B型索引,可以在创建索引是指定,

缺点: 服务器需要足够的内存来维持足够的内存来维持MEMORY存储引擎的表的使用。如果不需要了可以释放内存,甚至不需要删除表。

MEMORY用到的很少,因为它是把数据存到内存中,如果内存出现异常就会影响数据。如果重启或者关机,所有数据都会消失。因此,基于MEMORY的表的生命周期很短,一般是一次性的。


最新回复(0)