更新時間:2021-01-27 17:33:57 來源:動力節點 瀏覽1347次
MySQL作為目前最流行的關系型數據庫管理系統之一,往往是我們學習數據庫的首選。無論是在大學的專門課程還是在相關培訓機構的培訓課程,MySQL都是非常重要的內容。我們在求職面試的過程中,也會遇到各種各樣的MySQL面試題,本文我們為大家介紹10道經典MySQL面試題,為大家排憂解難。
1.索引的基本原理
索引用來快速地尋找那些具有特定值的記錄。如果沒有索引,一般來說執行查詢時遍歷整張表。
索引的原理很簡單,就是把無序的數據變成有序的查詢。
1)把創建了索引的列的內容進行排序
2)對排序結果生成倒排表
3)在倒排表內容上拼上數據地址鏈
4)在查詢的時候,先拿到倒排表內容,再取出數據地址鏈,從而拿到具體數據
2.事務的基本特性有哪些?
事務基本特性ACID分別是:
原子性:指的是一個事務中的操作要么全部成功,要么全部失敗。
一致性:指的是數據庫總是從一個一致性的狀態轉換到另外一個一致性的狀態。比如A轉賬給B100塊錢,假設中間sql執行過程中系統崩潰A也不會損失100塊,因為事務沒有提交,修改也就不會保存到數據庫。
隔離性:指的是一個事務的修改在最終提交前,對其他事務是不可見的。
持久性:指的是一旦事務提交,所做的修改就會永久保存到數據庫中。
3.MySQL由哪些部分組成, 各自有什么功能?
1、Server
1)連接器: 管理連接, 權限驗證
2)分析器: 詞法分析, 語法分析
3)優化器: 執行計劃生成, 索引的選擇
4)執行器: 操作存儲引擎, 返回執行結果
2、存儲引擎: 存儲數據, 提供讀寫接口
4.唯一索引比普通索引快嗎, 為什么?
唯一索引不一定比普通索引快, 還可能慢。
查詢時, 在未使用limit 1的情況下, 在匹配到一條數據后, 唯一索引即返回, 普通索引會繼續匹配下一條數據, 發現不匹配后返回. 如此看來唯一索引少了一次匹配, 但實際上這個消耗微乎其微.
更新時, 這個情況就比較復雜了. 普通索引將記錄放到change buffer中語句就執行完畢了. 而對唯一索引而言, 它必須要校驗唯一性, 因此, 必須將數據頁讀入內存確定沒有沖突, 然后才能繼續操作. 對于寫多讀少的情況, 普通索引利用change buffer有效減少了對磁盤的訪問次數, 因此普通索引性能要高于唯一索引.
5.MyISAM和InnoDB的區別有哪些
1)InnoDB支持事務, MyISAM不支持。
2)InnoDB支持行級鎖, MyISAM支持表級鎖。
3)InnoDB支持多版本并發控制(MVVC), MyISAM不支持。
4)InnoDB支持外鍵, MyISAM不支持。
5)MyISAM支持全文索引, InnoDB部分版本不支持(但可以使用Sphinx插件)
6.數據庫的三大范式
第一范式: 屬性不可再分.
第二范式: 在一范式的基礎上, 要求數據庫表中的每個實例或行必須可以被惟一地區分. 通常需要為表加上一個列, 以存儲各個實例的惟一標識. 這個惟一屬性列被稱為主關鍵字或主鍵.
第三范式: 在二范式的基礎上, 要求一個數據庫表中不包含已在其它表中已包含的非主關鍵字信息. 所以第三范式具有如下特征:1). 每一列只有一個值. 2). 每一行都能區分. 3). 每一個表都不包含其他表已經包含的非主關鍵字信息.
7.視圖有哪些特點?
1)視圖的列可以來自不同的表,是表的抽象和在邏輯意義上建立的新關系。
2)視圖是由基本表(實表)產生的表(虛表)。
3)視圖的建立和刪除不影響基本表。
4)對視圖內容的更新(添加,刪除和修改)直接影響基本表。
5)當視圖來自多個基本表時,不允許添加和刪除數據。
8.SQL 約束有哪幾種?
NOT NULL: 用于控制字段的內容一定不能為空(NULL)。
UNIQUE: 控件字段內容不能重復,一個表允許有多個 Unique 約束。
PRIMARY KEY: 也是用于控件字段內容不能重復,但它在一個表只允許出現一個。
FOREIGN KEY: 用于預防破壞表之間連接的動作,也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。
CHECK: 用于控制字段的值范圍。
9.六種關聯查詢
交叉連接(CROSS JOIN)
內連接(INNER JOIN)
外連接(LEFT JOIN/RIGHT JOIN)
聯合查詢(UNION與UNION ALL)
全連接(FULL JOIN)
交叉連接(CROSS JOIN)
10.超鍵、候選鍵、主鍵、外鍵分別是什么?
超鍵:在關系中能唯一標識元組的屬性集稱為關系模式的超鍵。一個屬性可以為作為一個超鍵,多個屬性組合在一起也可以作為一個超鍵。超鍵包含候選鍵和主鍵。
候選鍵:是最小超鍵,即沒有冗余元素的超鍵。
主鍵:數據庫表中對儲存數據對象予以唯一和完整標識的數據列或屬性的組合。一個數據列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。
外鍵:在一個表中存在的另一個表的主鍵稱此表的外鍵。
以上就是為大家介紹的10道經典MySQL面試題,希望能夠在我們求職面試的過程中起到小小的幫助,當然主要還是靠我們自己的知識積累。在本站的MySQL教程里面,有著MySQL知識體系的全面講解課程,幫助我們快速掌握MySQL的整個知識體系,無懼任何面試的挑戰!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習