极客进化岛
技术自由路

【运维面试】面试官:MySQL 存储引擎有哪几种,他们的区别是什么?

前言

mysql面试中最常问的问题之一: 小伙子,你说一下你们公司用的存储引擎,以及你知道有哪些存储引擎和他们之间的区别?

面试者: 简历给我吧,我去下一家。

什么是存储引擎?

官方定义:

存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。

通俗版:
mysql中的数据使用不同的技术存储在文件或者内存中,这些技术中包含不同的存储机制和索引技巧,因为不同所以提供了不同的功能和能力。 在mysql中将这些不同的技术以及配套的相关功能成为存储引擎。

存储引擎的有哪些?

常见的存储引擎有innodb,myisam,MEMORY

区别

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback),现在高版本中默认自带的就是innoDB引擎了。

MyISAM:最重要的特性就是,不支持事务;筛选大量数据的时候速度非常快,在并发插入的时候允许同时选择和插入数据,所以MyISAM引擎很适合管理邮件或者web服务器日志数据

MEMORY:速度快,采用的逻辑存储是内存,提高了存储数据表的心梗, 坏处就是一旦mysql守护进程崩溃,数据会丢失。在一些目标数据小且被经常频繁的访问的地方更适合。

还有哪些存储引擎

  • InnoDB
  • MyISAM
  • Memory
  • CSV
  • Archive
  • Blackhole
  • Merge:
  • Federated
  • Example

总结

对于存储引擎这个问题,只需要回答两种就可以 ,尤其是怎么读更重要,很多小伙伴居然答上来的,但单词不会读。

赞(0)
未经允许不得转载:极客进化岛 » 【运维面试】面试官:MySQL 存储引擎有哪几种,他们的区别是什么?