mysql5.5之前,默认引擎是“myisam”;从mysql5.5版本开始,默认引擎是“innodb”,该引擎完全支持符合acid和事务,支持外键、提交、回滚、前滚操作,表的大小最高可达64tb。在mysql中,可以使用“show engines;”命令查看系统所支持的引擎类型以及默认引擎;输出结果中,default关键字标识的引擎就是当前默认的存储引擎。
本教程操作环境:windows7系统、mysql8版本、dell g3电脑。
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。简而言之,存储引擎就是指表的类型。
数据库的存储引擎决定了表在计算机中的存储方式。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
mysql为其表提供各种存储引擎,如innodb、myisam、memory、merge、archive、csv、blackhole 等。
在mysql 5.5之前,当您创建表而未明确指定存储引擎时,myisam是默认存储引擎。从版本5.5开始,mysql使用innodb作为默认存储引擎。
可以使用show engines;语句查看系统所支持的引擎类型,结果如图所示。
support 列的值表示某种引擎是否能使用,yes表示可以使用,no表示不能使用,default表示该引擎为当前默认的存储引擎。
可以看出,当前默认的存储引擎是innodb。
myisam 引擎
myisam扩展了以前的isam存储引擎。myisam表针对压缩和速度进行了优化。myisam表也可以在平台和操作系统之间移植。
myisam表的大小可以达到256tb,这是巨大的。此外,myisam表可以压缩为只读表以节省空间。在启动时,mysql会检查myisam表是否存在损坏,甚至在出现错误时对其进行修复。myisam表不是事务安全的。
innodb 引擎
innodb表完全支持符合acid和事务。它们也是性能的最佳选择。innodb表支持外键,提交,回滚,前滚操作。innodb表的大小最高可达64tb。
与myisam一样,innodb表可在不同平台和操作系统之间移植。如有必要,mysql还会在启动时检查和修复innodb表。
merge 引擎
merge表是一个虚拟表,它将多个myisam表组合在一起,这些表具有与一个表类似的结构。merge存储引擎也称为mrg_myisam引擎。merge表没有自己的索引; 它使用组件表的索引。
使用merge表,可以在连接多个表时加快性能 。mysql只允许您对merge表执行select,delete,update和insert操作。如果drop table在merge表上使用merge语句,则仅删除规范。基础表不会受到影响。
memory 引擎
内存表存储在内存中并使用哈希索引,因此它们比myisam表更快。内存表数据的生命周期取决于数据库服务器的正常运行时间。内存存储引擎以前称为heap。
archive 引擎
归档存储引擎允许您将大量记录(用于归档)存储为压缩格式以节省磁盘空间。存档存储引擎在插入时压缩记录,并在读取时使用zlib库对其进行解压缩。
归档表仅允许insert和select语句。archive表不支持索引,因此需要对表读取行进行全表扫描。
csv
csv存储引擎以逗号分隔值(csv)文件格式存储数据。csv表提供了一种将数据迁移到非sql应用程序(如电子表格软件)的便捷方法。
csv表不支持null数据类型。此外,读取操作需要全表扫描。
federated
federated存储引擎可让您无需使用群集或复制技术管理从远程mysql服务器的数据。本地联合表不存储任何数据。从本地联合表查询数据时,将从远程联合表中自动提取数据。
【相关推荐:mysql视频教程】
以上就是mysql默认引擎是什么的详细内容。