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存储引擎的表的使用。如果不需要使用了,可以释放这些内存,甚至可以删除不需要的表。
     

posted on 2018-10-31 16:54  溪水静幽  阅读(70)  评论(0)    收藏  举报