MySql数据库引擎
InnoDB存储引擎
InnoDB给Mysql的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全。InnoDB是Mysql上第一个提供外键约束的表引擎,
InnoDB存储引擎中支持自动增长列AUTO_INCREMENT,自动增长列必须为主键。在插入值时,如果自动增长列不输入值,则插入的值为自动增长后的值;
如果输入的值为0或者为空(null),则插入的值也为自动增长后的值,如果插入某个确定的值,且该值在前面没有出现过,则可以直接插入。
缺点是读写效率稍差,占用的数据空间相对较大。
MyISAM存储引擎
MyISAM存储引擎的表存储成三个文件。文件的名字与标明相同,扩展名包括frm、MYD和MYI。
其中,frm为扩展名的文件存储表的结构;MYD为扩展名的文件存储数据,其是MYData的缩写;MYI为扩展名的文件存储引擎,其是MYIndex的缩写。
优点是占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。
MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎。
一般来说,如果需要事务支持,并且有较高的并发读取频率(MyISAM的表锁的粒度太大,所以当该表写并发量较高时,要等待的查询就会很多了),InnoDB是不错的选择。如果你的数据量很大(MyISAM支持压缩特性可以减少磁盘的空间占用),而且不需要支持事务时,MyISAM是最好的选择。
MEMORY存储引擎
使用存储在内存中的内容来创建表,而且所有数据也放在内存中
每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件只存储表的结构。而其数据文件,都是存储在内存中。
有利于对数据的快速的处理,提高整个表的处理效率。
值得注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要使用了,可以释放这些内存,甚至可以删除不需要的表。
浙公网安备 33010602011771号