满怀对mysql数据库研究的热情,继续走向引擎。
引擎是啥
引擎可以理解为汽车的发动机,可以理解为人的性格,对于数据库:
数据库存储引擎: 是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎,还可以支持插件引擎。
有哪些类型,有什么不同
ISAM
5.1版本之前存在的可以快速存储和查询数据的引擎,不占用大量内存和存储资源,但是不支持事务,索引,外键等核心功能,已经废弃
MyISAM
5.1版本之后出现的,主要基于ISAM引擎,提供了索引和字段管理,还提供了使用一种表格锁定的机制来优化多个并发的读写操作,但是由于其快速读取的性能,主要用于高负载的查询。
HEAP
也称MEMERY,该引擎通过在内存中建立临时表来存储数据,每个表实际对应着一个磁盘文件,文件名和表明相同,后缀名为.frm。由于其在内存中存储,所以有很高的存储,查询,修改性能,存储引擎默认使用hash索引,但由于其存储在内存中,所以数据可能存在不稳定性。所以当数据库异常重启,或者电脑重庆相关数据就会遗失,一般只使用一次。
INNODB
5.5版本后默认的数据库引擎,支持事务,索引,外键,系统崩溃修复能力和多版本并发控制的行级锁。支持自增auto_increment。
CSV
使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型的文件当做表进行处理),这种文件是一种普通文本文件,每个数据行占用一个文本行。该种类型的存储引擎不支持索引,即使用该种类型的表没有主键列;另外也不允许表中的字段为null。