mysql默认引擎是什么
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。简而言之,存储引擎就是指表的类型。
数据库的存储引擎决定了表在计算机中的存储方式。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
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服务器的数据。本地联合表不存储任何数据。从本地联合表查询数据时,将从远程联合表中自动提取数据。