存储引擎定义

       存储引擎是指表的类型,在具体开发时为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际需要来选择存储引擎。因为存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算机的存储方式。

InnoDB 存储引擎

       InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全,它是MySQL第一个提供外键约束的表引擎,而且InnoDB对事务的处理能力也是MySQL其他存储引擎无法比拟的。

       MySQL 5.6版本之后,除系统数据库之外,默认的存储引擎由MyISAM改为InnoDB,MySQL8.0版本在原先的基础上,将系统数据库的存储引擎也改为了InnoDB。

       InnoDB支持自动增长列AUTO_INCREMENT,支持外键(FOREIGN KRY)。

       查看MySQL数据库管理系统支持的引擎

SHOW ENGINES

mysql由于存储引擎的原因无法访问表_mysql


       DEFAULT表示系统默认支持的存储引擎

MyISAM 存储引擎

       MyISAM 存储引擎是MySQL种最常用的存储引擎,MyISAM 存储引擎是基于ISAM存储引擎发展起来的,MyISAM 增加了许多有用的扩展。

       MyISAM 存储引擎的表存储成三个文件,文件的名字与表名相同,或站名包括fm、MYD和MYI。

       基于MyISAM 存储引擎的表支持三种存储格式,包括静态型、动态型和压缩型。

InnoDB与MyISAM的对比

       InnoDB存储引擎的优势在于提供了良好的事务管理、崩溃修复能力和并发控制:缺点是其读写效率稍差,占用的数据空间相对比较大。

       MyISAM存储引擎的优势在于占用空间小,处理速度快:缺点是不支持事务的完整性和并发性。

特性

InnoDB

MyISAM

事务安全

支持


存储显示

64TB


空间使用



内存使用



插入数据速度



锁机制

行锁

表锁

对外键的支持

支持


数据可压缩


支持

批量插入速度



       如果对事务的完整性要求比较高,要求实现并发控制,那么选择InnoDB会有很大的优势,如果需要进行频繁的更新、删除的数据库,也可以选择InnoDB。
       如果表主要是用于插入新纪录和读出记录,那么选择MyISAM能实现处理的高效率,如果应用的完整性、并发性要求很低,也可以选择MyISAM。

       修改MySQL的默认存储引擎。

SET DEFAULT_STORAGE_ENGINE=MYISAM
	SHOW ENGINES

mysql由于存储引擎的原因无法访问表_数据库_02