基本概念
数据库存储引擎是数据库底层软件组件。
作用
数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
分类
常用的存储引擎:
- InnoDB
特点:
1.InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键
2.MySQL 5.5.5 之后,InnoDB 作为默认存储引擎。 - MyISAM
特点:
1.MyISAM 是基于 ISAM 的存储引擎,并对其进行扩展,是在 Web、数据仓储和其他应用环境下最常使用的存储引擎之一
2.MyISAM 拥有较高的插入、查询速度,但不支持事务 - MEMORY
特点:
1.MEMORY 存储引擎将表中的数据存储到内存中,为查询和引用其他数据提供快速访问
MySQL 存储引擎
MySQL 存储引擎基础知识
- MySQL 支持多种类型的数据库引擎,在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎,MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE 等;
- 查看可用的数据库引擎和默认引擎
show engines;
image.png
Support 列的值表示某种引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认的存储引擎。
Transactions列的值指是否支持事务
如何选择 MySQL 存储引擎
-
不同的存储引擎支持的功能如下:
image.png
可以根据以下的原则来选择 MySQL 存储引擎:
1.如果要提供提交、回滚和恢复的事务安全(ACID 兼容)能力,并要求实现并发控制,InnoDB 是一个很好的选择。
2.如果数据表主要用来插入和查询记录,则 MyISAM 引擎提供较高的处理效率。
3.如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存的 MEMORY 引擎中,MySQL 中使用该引擎作为临时表,存放查询的中间结果。
4.如果只有 INSERT 和 SELECT 操作,可以选择Archive 引擎,Archive 存储引擎支持高并发的插入操作,但是本身并不是事务安全的。Archive 存储引擎非常适合存储归档数据,如记录日志信息可以使用 Archive 引擎。
提示:使用哪一种引擎要根据需要灵活选择,一个数据库中多个表可以使用不同的引擎以满足各种性能和实际需求。使用合适的存储引擎将会提高整个数据库的性能。
MySQL 默认存储引擎
- InnoDB 是系统的默认引擎,支持可靠的事务处理。
- 修改数据库临时的默认存储引擎
SET default_storage_engine=< 存储引擎名 >
SET default_storage_engine=MyISAM;
修改后,再次重启客户端,默认存储引擎仍然是 InnoDB。
网友评论