手机版网站开发,设计公司算什么企业,福州微信营销网站建设,开发公司已经卖出生地“请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别”。 屏幕前有多少同学在面试过程与遇到过类似问题#xff0c; 可以在评论区留言#xff1a;遇到过。 考察目的 对于 xxxx 技术的区别#xff0c;在面试中是很常见的一个问题 一般情况下#xff0c;面试官会通过这类… “请简要说明 Mysql 中 MyISAM 和 InnoDB 引擎的区别”。 屏幕前有多少同学在面试过程与遇到过类似问题 可以在评论区留言遇到过。 考察目的 对于 xxxx 技术的区别在面试中是很常见的一个问题 一般情况下面试官会通过这类问题来热场打开接下来沟通的话题 然后沿着你回答的内容层层递进去做更深入的了解。 当然另外一个更加深层次的原因就是考察求职者对于这两个技术的理解层次。 因为能够通过自己的理解总结出他们的区别至少说明你是有比较深入的研究的。 这个问题考察难度算是比较大的一般面向 3 年以上开发经验的同学。 问题解析 MyISAM 和 InnoDB 都是 Mysql 里面的两个存储引擎。 在 Mysql 里面存储引擎是可以自己扩展的它的本质其实是定义数据存储的方式 以及数据读取的实现逻辑。 而不同存储引擎本身的特性使得我们可以针对性的选择合适的引擎来实现不同的业务 场景。 从而获得更好的性能。 在 Mysql 5.5 之前默认的存储引擎是 MyISAM从 5.5 以后InnoDB 就作为了默认 的存储引擎。 在实际应用开发中我们基本上都是采用 InnoDB 引擎。 我们先来看一下 MyISAM 引擎。 MyISAM 引擎的数据是通过二进制的方式存储在磁盘上它在磁盘上体现为两个文件 一个是.MYD 文件D 代表 Data是 MyISAM 的数据文件存放数据记录 一个是.MYI 文件I 代表 Index是 MyISAM 的索引文件存放索引 实现机制如图所示如图。 因为索引和数据是分离的所以在进行查找的时候先从索引文件中找到数据的磁盘位 置再到数据文件 中找到索引对应的数据内容。 在 InnoDB 存储引擎中数据同样存储在磁盘上它在磁盘上只有一个 ibd 文件里 面包含索引和数据。 如图它的整体结构如图所示在 B树的叶子节点里面存储了索引对应的数据 在通过索引进行检索的时候命中叶子节点就可以直接从叶子节点中取出行数据。 了解了这两个存储引擎以后我们在面试的时候该怎么回答呢 高手回答 好的。 基于我的理解我认为 MyISAm 和 InnoDB 的区别有 4 个 第一个数据存储的方式不同MyISAM 中的数据和索引是分开存储的 而 InnoDB 是把索引和数据存储在同一个文件里面。 第二个对于事务的支持不同MyISAM 不支持事务而 InnoDB 支持 ACID 特性 的事务处理 第三个对于锁的支持不同MyISAM 只支持表锁而 InnoDB 可以根据不同的 情况支持行锁表锁间隙锁临键锁 第四个MyISAM 不支持外键InnoDB 支持外键 因此基于这些特性我们在实际应用中可以根据不同的场景来选择合适的存储引擎。 比如如果需要支持事务那必须要选择 InnoDB。 如果大部分的表操作都是查询可以选择 MyISAM。 以上就是我的理解。 总结 下次面试的时候遇到这个问题大家知道怎么回答了吗 如果你喜欢我的作品记得点赞收藏加关注哦 本文摘自mic老师文档