国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL數據庫日常面試題有哪些

2024-07-24 12:33:07
字體:
來源:轉載
供稿:網友
  本篇內容主要講解“MySQL數據庫常見面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL數據庫常見面試題有哪些”吧!
  
  1、數據庫的常用范式:
  第一范式(1NF):指表的列不可再分,數據庫中表的每一列都是不可分割的基本數據項,同一列中不能有多個值;
  第二范式(2NF):在 1NF 的基礎上,還包含兩部分的內容:一是表必須有一個主鍵;二是表中非主鍵列必須完全依賴于主鍵,不能只依賴于主鍵的一部分;
  第三范式(3NF):在 2NF 的基礎上,消除非主鍵列對主鍵的傳遞依賴,非主鍵列必須直接依賴于主鍵。
  BC范式(BCNF):在 3NF 的基礎上,消除主屬性對于碼部分的傳遞依賴
  2、SQL語句的執行過程:
  2.1、客戶端的數據庫驅動與數據庫連接池:
 
  (1)客戶端與數據庫進行通信前,通過數據庫驅動與MySQL建立連接,建立完成之后,就發送SQL語句
 
  (2)為了減少頻繁創建和銷毀連接造成系統性能的下降,通過數據庫連接池維護一定數量的連接線程,當需要進行連接時,就直接從連接池中獲取,使用完畢之后,再歸還給連接池。常見的數據庫連接池有 Druid、C3P0、DBCP
 
  2.2、MySQL架構的Server層的執行過程:
 
  (1)連接器:主要負責跟客戶端建立連接、獲取權限、維持和管理連接
 
  (2) 執行器:根據一系列的執行計劃去調用存儲引擎提供的API接口去調用操作數據,完成SQL的執行。
 
  2.3、Innodb存儲引擎的執行過程:
 
  (1)首先MySQL執行器根據 執行計劃 調用存儲引擎的API查詢數據
  (2)存儲引擎先從緩存池buffer pool中查詢數據,如果沒有就會去磁盤中查詢,如果查詢到了就將其放到緩存池中
  (3)在數據加載到 Buffer Pool 的同時,會將這條數據的原始記錄保存到 undo 日志文件中
  (4)innodb 會在 Buffer Pool 中執行更新操作
  (5)更新后的數據會記錄在 redo log buffer 中
  (6)提交事務在提交的同時會做以下三件事
  (7)(第一件事)將redo log buffer中的數據刷入到redo log文件中
  (8)(第二件事)將本次操作記錄寫入到 bin log文件中
  (9)(第三件事)將bin log文件名字和更新內容在 bin log 中的位置記錄到redo log中,同時在 redo log 最后添加 commit 標記
  (10)使用一個后臺線程,它會在某個時機將我們Buffer Pool中的更新后的數據刷到 MySQL 數據庫中,這樣就將內存和數據庫的數據保持統一了
  3、常用的存儲引擎?InnoDB與MyISAM的區別?
  存儲引擎是對底層物理數據執行實際操作的組件,為Server服務層提供各種操作數據的API。常用的存儲引擎有InnoDB、MyISAM、Memory。這里我們主要介紹InnoDB 與 MyISAM 的區別:
 
  (1)事務:MyISAM不支持事務,InnoDB支持事務
 
  (2)鎖級別:MyISAM只支持表級鎖,InnoDB支持行級鎖和表級鎖,默認使用行級鎖,但是行鎖只有通過索引查詢數據才會使用,否則將使用表鎖。行級鎖在每次獲取鎖和釋放鎖的操作需要消耗比表鎖更多的資源。使用行鎖可能會存在死鎖的情況,但是表級鎖不存在死鎖
 
  (3)主鍵和外鍵:MyISAM 允許沒有任何索引和主鍵的表存在,不支持外鍵。InnoDB的主鍵不能為空且支持主鍵自增長,如果沒有設定主鍵或者非空唯一索引,就會自動生成一個6字節的主鍵,支持外鍵完整性約束
 
  (4)索引結構:MyISAM 和 InnoDB 都是使用B+樹索引,MyISAM的主鍵索引和輔助索引的Data域都是保存行數據記錄的地址。但是InnoDB的主鍵索引的Data域保存的不是行數據記錄的地址,而是保存該行的所有數據內容,而輔助索引的Data域保存的則是主索引的值。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍山县| 潞西市| 昆明市| 浦城县| 太原市| 澄迈县| 景宁| 雷州市| 大城县| 清远市| 喀喇沁旗| 苗栗市| 广州市| 息烽县| 桐城市| 苏州市| 平利县| 贺州市| 东港市| 鹤壁市| 宣城市| 澜沧| 大宁县| 蒙自县| 永川市| 调兵山市| 呼图壁县| 上思县| 徐州市| 赣州市| 阿拉善左旗| 金堂县| 榆中县| 宜州市| 密山市| 青铜峡市| 五家渠市| 大新县| 且末县| 青阳县| 新巴尔虎左旗|