java面試一日一題:mysql中常用的存儲引擎有哪些?


問題:請講下mysql中常用的引擎有哪些?

分析:該問題主要考察對mysql存儲引擎的理解,及區別是什么?

回答要點:

主要從以下幾點去考慮,

1、mysql的存儲引擎的基本概念?

2、mysql中常用的存儲引擎有哪些及各自的區別是什么?

 

從上篇《java面試一日一題:請講下對mysql的理解》已經知道了mysql從整體架構上分為兩部分,一部分是server層,另外一部分是存儲引擎層。說的簡單點存儲引擎就是用來實際管理mysql中的數據,為了適用於不同的場景有了不同的存儲引擎。比較常用的存儲引擎有myIsam和Innodb兩種。

myIsam

myIsam不支持事務;

myIsam不支持外鍵;

myIsam的索引是非聚集索引,索引和數據是分開的;

myIsam使用一個變量保存了表中的數據總行數

myIsam支持表鎖;

myIsam支持全文索引;

Innodb

innodb支持事務,事務的實現依靠redo log、undo log、鎖、MVCC等技術;

inndo是聚集索引,主鍵索引和數據是在一起的;

innod沒有保存數據的總行數;

innodb支持表、行鎖,默認是行鎖;

innodb不支持全文索引,在5.7以后的版本才支持全文索引;

 

本文簡單的從一個面試過程中常見的面試題入手,講解了mysql的myIsam和Innodb兩種存儲引擎的區別。其實從上面的回答中面試官可以引申出很多問題,例如,

1、什么是聚集、非聚集索引;

2、mysql的索引數據結構是什么樣子的,為什么使用B+樹;

3、什么是redo log、undo log

4、什么是MVCC;

5、事務的特性有哪些;

簡單列舉下由本題引申的面試點,后面會統一總結。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM