通过本文我们将探索以下几个问题。
一、思考
- 问题一:存储引擎的作用
- 问题二:MYSQL支持哪几种存储引擎
- 问题三:各个存储引擎有哪些区别?
- 问题四:存储引擎是针对库还是表?如何设置?
二、分析
-
存储引擎定义
在上文【MYSQL---执行流程】中我们了解到执行器最终会调用存储引擎的接口进行数据操作。而我们能想到数据是存储在磁盘上的。那么我们是否可以理解为存储引擎的作用便是“查询或者维护磁盘数据并返回操作结果”。下文是从网络上搜集的存储引擎定义,供大家参考:
参考地址:https://github.com/jaywcjlove/mysql-tutorial/blob/master/chapter3/3.5.md
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。
参考地址:https://segmentfault.com/a/1190000012588602
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是插件式存储引擎。
-
常见MYSQL存储引擎