myISAM基于ISAM存储引擎并对其进行扩展。它是Web,数据存储和其他应用程序环境中使用最多的存储引擎之一。
运行以下命令以查看所有mysql存储引擎
关于mysql整个存储引擎的介绍。
InnoDB是事务数据库的首选引擎,它支持事务安全表(ACID),它支持阻塞行和外键。正如您在上图中所看到的,InnoDB是默认的MySQL引擎。 InnoDB的主要特点是:
1. InnoDB为MySQL提供了一个安全的存储引擎,用于事务(与ACID兼容)以及恢复,故障和确认功能。 InnoDB锁定在行级别,并在SELECT语句中提供类似于Oracle的未阻塞读取。这些功能增加了多用户部署和性能。在SQL查询中,您可以自由地将InnoDB类型的表与其他类型的MySQL表混合,即使在同一查询中也是如此。
2. InnoDB旨在最大限度地处理大量数据。任何其他基于磁盘的关系数据库引擎块都可能无法匹配其CPU效率。
3. InnoDB存储引擎与MySQL服务器完全集成,MySQL服务器维护自己的缓冲区组,以缓存主存储器中的数据和索引。 InnoDB将其表和索引放在逻辑表空间中,该空间可以包含多个文件(或未处理的磁盘文件)。这与MyISAM表不同,MyISAM表中的每个表都存储在MyISAM表的单独文件中。 InnoDB表可以是任何尺寸甚至操作系统上,其中文件的大小限制为2 GB的。
InnoDB支持外键完整性限制。将数据存储在表中时,每个表都按主键的顺序存储。如果被定义表时指定了主键,'INNODB生成的每行6个字节一个rowid。并以此为主键
5. InnoDB用于许多需要高性能的大型数据库站点。
InnoDB不会创建目录。当使用InnoDB时,MySQL将在MySQL数据目录中创建一个名为ibdata1的10MB自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB日志文件。
MyISAM存储引擎
MyISAM基于ISAM存储引擎并对其进行扩展。它是Web,数据存储和其他应用程序环境中使用最多的存储引擎之一。 MyISAM具有很高的插入和查询速度,但它不支持。 MyISAM的主要特点是:1,大文件(最长63位)与支持大文件的文件系统和操作系统兼容。
2.当混合删除,更新和插入操作时,动态大小的行会产生较少的碎片。这是通过组合相邻的已删除块来完成的,如果删除了下一个块,它将扩展到下一个块并自动完成。
3.每个MyISAM表的最大索引数为64,可以通过重新编译来更改。每个索引的最大列数为16。
4,密钥的最大长度为1000字节,也可以通过编译进行修改。如果密钥长度超过250字节,将使用超过1024字节的密钥。
如图5所示,可以索引BLOB和TEXT列
6,索引列中允许NULL,该值占用每个键的0~1个字节
7.数字键的所有值都以高字节优先级存储,以允许更大的索引压缩
8. MyISAM类型的每个表都有一个AUTO_INCREMENT的内部列。执行INSERT和UPDATE操作时,将更新列并更新AUTO_INCREMENT列。因此,MyISAM类型表的AUTO_INCREMENT列的更新速度比InnoDB类型的AUTO_INCREMENT快。
9,您可以将数据文件和索引文件放在不同的目录中
如图10所示,每列字符可以具有不同的字符集
如图11所示,VARCHAR表可以是固定或动态记录长度
12,VARCHAR和CHAR列最大可达64KB
使用MyISAM引擎创建数据库将生成3个文件。文件名以表的名称开头。扩展名的文件类型:frm文件存储表定义,.MYD数据文件扩展名(MYData),索引文件扩展名。 MYI(MYIndex)
内存存储引擎
MEMORY存储引擎将表中的数据存储在内存中,无需咨询即可快速访问,并可参考表中的其他数据。主要内存功能是:
如图1所示,MEMORY表的每个表最多可以有32个索引,每个索引16列,最大密钥长度为500字节
2,MEMORY存储引擎执行HASH和BTREE微观世界
3,可以在MEMORY表中具有非唯一键值
4,MEMORY表使用固定的记录长度格式
5,MEMORY不支持BLOB或TEXT列
6,MEMORY支持AUTO_INCREMENT列和可能包含NULL值的列的索引
7,MEMORY表在客户端之间共享(与任何其他非TEMPORARY表一样)
8,MEMORY表的内存存储在内存中,内存是MEMORY表,服务器处于非活动状态的查询处,内部共享表创建如图9所示,当释放用于由存储器表必须执行删除或截断TABLE,或删除整个表的存储器,需要不MEMORY表的内容(使用DROP TABLE)
存储引擎选择
关于mysql整个存储引擎的介绍。
如果您想为承诺,回滚,故障恢复和并发控制提供事务安全功能(与ACID兼容),InnoDB是一个不错的选择。
如果数据表主要用于插入和查询记录,则MyISAM引擎可以提供更高的处理效率。
如果您只临时存储数据,数据量不大而且您不需要高数据安全性,则可以选择将数据保存在内存引擎内存中。 MySQL使用此引擎作为临时表来存储查询的中间结果。
如果只有INSERT和SELECT操作,则可以选择Archive,它支持高度并发的条目,但对事务不安全。归档是存储归档数据的理想选择,因为记录信息可以使用归档。
使用的电机需要灵活性。数据库中的多个表可以使用不同的引擎来满足各种实际和性能需求。使用适当的存储引擎将提高整个数据库的性能。
上海IT外包服务网 链接:http://www.linemore.com