Q1:主鍵,外鍵,超鍵,候選鍵;
主鍵 對錶中數據進行惟一標識的數據列的組合;不能缺失;不能空值;
外鍵 該列爲另外一表的主鍵;
超鍵 關係中能惟一標識數據的屬性;
候選鍵 不含多餘屬性的超鍵;
Q2:數據庫事務的四個特徵及含義;
原子性 要麼所有完成,要麼不完成,若發生錯誤會進行回滾操做;
一致性 開始到結束後,數據庫完整性約束沒收到破壞;(實體完整性,參照完整性,用戶定義的完整性)
隔離性 事務與事務之間相隔離,串行化執行;
持久性 事務完成對數據的影響是永久的;
Q3:視圖的做用,能夠更改嗎;
視圖是虛擬的表;只包含動態檢索數據的查詢,不包含數據;簡化操做,隱藏細節,保護數據;對視圖的更新會做用於基表,通常不更新;
Q4:drop,delete和truncate ;
drop 表級的刪除;不能回滾;
truncate 清空表;不記錄單行刪除日誌;沒法恢復;只能對於TABLE操做;不能在帶FOREIGN KEY約束的表(被引用的表)中使用;計數從頭開始;
delete 配合where刪除數據;會記錄日誌用於迴歸;會觸發觸發器;不減小索引和表的空間;
Q5:索引的工做原理和其種類;
索引的實現一般採用B樹或B+樹,加快查詢速度也消耗更多空間;
惟一索引 不容許任何兩行具相同值
主鍵索引 惟一索引的一種
彙集索引 行的物理順序和鍵值的索引順序相同
普通索引 無限制
全文索引 針對較大的數據生成全文索引很耗時間空間
組合索引 最左前綴原則:若對多列創建組合索引,若第二列未使用索引,則第三列也不會使用
InnoDB 主索引:InnoDB的數據文件自己;輔助索引:相應記錄主鍵的值
MyISAM 索引與數據分離;輔助索引:與主索引無區別;
Q6:鏈接的種類
內部聯接(等值聯接) INNER JOIN
外部聯接(包含在相關表中沒有關聯行的行) LEFT OUTER JOIN
RIGHT OUTER JOIN
Q7:數據庫範式
1NF 每一列都是不可分割的基本數據項,同一列無二值;無重複的域;
2NF 實例依賴於主鍵部分;
3NF 屬性不依賴於其餘非主屬性;
Q8:存儲過程與觸發器的區別
存儲過程和觸發器都是SQL語句集;觸發器不可用CALL調用,而是在用戶執行某些語句後自動調用;
Q9:分表與分區
分表 真正的分表,每張表對應三個文件;提升MYSQL的併發能力;
分區 表中的數據分紅多個區塊;突破磁盤的讀寫能力;
Q10:數據庫隔離級別
髒讀 一個事務讀取了另外一個事務未提交的數據
不可重複讀 在一次事務範圍內,讀取同一數據產生了不一樣的值
虛讀 讀取總體的數據後,因其餘事務對數據的更新,再次查詢時結果不一樣
串行化 3種都可避免
可重複讀(默認) 避免1,2
讀已提交 1
讀未提交 無
Q11:MYSQL的兩種存儲引擎
MYISAM 不支持事務,不支持外鍵,表鎖;插入數據時鎖定整個表,查行數時無需整表掃描
INNODB 支持事務,外鍵,行鎖,查表總行數時,全表掃描;
Q12:MYSQL索引算法
HASH 適合等值查找,不適合範圍,不能排序
BTREE 適合範圍查找,無hash衝突
Q13:彙集索引和非彙集索引
彙集索引 數據按索引順序存儲,節點存儲的是真實數據
非彙集索引 節點存儲的是指向真正數據的指針
Q14:索引的優缺點
優勢 提升查詢效率
缺點 下降了更新效率
Q15:兩種存儲引擎索引的區別
Innodb 主索引的數據文件自己就是索引文件;輔助索引記錄主鍵的值;
MyISAM 主索引數據文件和索引文件分離;與主索引無區別;
Q16:數據庫的主從複製
一個服務器做爲主服務器,一個或多個服務器做爲從服務器,主服務器將更新寫到二進制日誌,當一個從服務器鏈接到主服務器時,通知主服務器讀取日誌,接收從那時起發生的全部更新。解決:數據分佈,負載平衡,備份,高可用性和容錯性
基於語句 在主服務器上執行的語句,在從服務器上也執行
基於行 將改變的內容複製過去
混合類型 語句複製失敗時採用行的形式
Q17:數據庫鏈接池
爲數據庫鏈接創建一個緩衝池,防止過於大量的鏈接的創建與管理;
Q18:存儲過程
存儲過程是一些預編譯的SQL語句,執行效率較高
Q19:樂觀鎖和悲觀鎖
樂觀鎖 假定不會發生併發衝突,只在提交時檢查,如有其餘數據更新了數據,則回滾;使用數據版本標示數據(時間戳,版本號)
悲觀鎖 假定會發生併發衝突,屏蔽一切破壞數據庫一致性的操做,主要用於數據爭用激烈的環境,以及鎖成本低於回滾成本時;排他鎖;
---------------------
做者:史前大洪水
來源:CSDN
原文:https://blog.csdn.net/u011010851/article/details/80074550
版權聲明:本文爲博主原創文章,轉載請附上博文連接!算法