与其他DBMS一样,MySQL有一个 具体管理和处理数据的内部引擎 。在使用create table语句时,该引擎具体创建表,而在使用select或进行其他数据库处理时,该引擎在内部处理你的请求。多数时候,引擎都隐藏在DBMS内,不需要过多关注他。
但是MySQL与其他DBMS不一样,它具有多个引擎,它打包多个引擎,这些引擎都隐藏在MySQL服务器内。为什么要发行这么多引擎呢?因为它们具有各自不同的功能和特性,为不同的任务选择正确的引擎能获得良好的功能和灵活性。
但是,也可以完全忽略这些数据库引擎。在创建表时省略engine=语句,则使用默认引擎(很可能时MyISAM),多数SQL语句都会使用它。
以下是几个常见的数据库引擎:
- InnoDB是一个可靠的事务处理引擎,它不支持全文本搜索;
- MEMORY在功能上等同于MyISAM,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合临时表);
- MyISAM是一个性能及高的引擎,它支持全文本搜索,但不支持事务处理;
引擎类型可以混用,比如当你希望既支持事务处理,也支持全文本搜索时,就可以同时使用InnoDB和MyISAM。