mysql基礎概念知識
q1:主鍵,外來鍵,超鍵,候選鍵;
主鍵 對錶中資料進行唯一標識的資料列的組合;不能缺失;不能空值;
外來鍵 該列為另一表的主鍵;
超鍵 關係中能唯一標識資料的屬性;
候選鍵 不含多餘屬性的超鍵;
q2:資料庫事務的四個特徵及含義;
原子性 要麼全部完成,要麼不完成,若發生錯誤會進行回滾操作;
一致性 開始到結束後,資料庫完整性約束沒收到破壞;(實體完整性,參照完整性,使用者定義的完整性)
隔離性 事務與事務之間相隔離,序列化執行;
永續性 事務完成對資料的影響是永久的;
q3:檢視的作用,可以更改嗎;
檢視是虛擬的表;只包含動態檢索資料的查詢,不包含資料;簡化操作,隱藏細節,保護資料;對檢視的更新會作用於基表,一般不更新;
q4:drop,delete和truncate ;
drop 表級的刪除;不能回滾;
truncate 清空表;不記錄單行刪除日誌;無法恢復;只能對於table操作;不能在帶foreign key約束的表(被引用的表)中使用;計數從頭開始;
delete 配合where刪除資料;會記錄日誌用於回歸;會觸發觸發器;不減少索引和表的空間;
唯一索引 不允許任何兩行具相同值
主鍵索引 唯一索引的一種
聚集索引 行的物理順序和鍵值的索引順序相同
普通索引 無限制
全文索引 針對較大的資料生成全文索引很耗時間空間
組合索引 最左字首原則:若對多列建立組合索引,若第二列未使用索引,則第三列也不會使用
innodb 主索引:innodb的資料檔案本身;輔助索引:相應記錄主鍵的值
myisam 索引與資料分離;輔助索引:與主索引無區別;
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:樂觀鎖和悲觀鎖
樂觀鎖 假定不會發生併發衝突,只在提交時檢查,若有其他資料更新了資料,則回滾;使用資料版本標示資料(時間戳,版本號)
悲觀鎖 假定會發生併發衝突,遮蔽一切破壞資料庫一致性的操作,主要用於資料爭用激烈的環境,以及鎖成本低於回滾成本時;排他鎖;
其他有一些更加詳細的知識點總結可以參考
mysql基礎知識
一 啟動與退出 1 進入mysql 啟動mysql command line client mysql的dos介面 直接輸入安裝時的密碼即可。此時的提示符是 mysql 或開啟終端,輸入sql語句 mysql uroot p123 2 退出mysql quit或exit 二 庫操作 1 建立資料庫 ...
mysql基礎知識
1 為什麼使用資料庫 1 降低儲存資料的冗餘度 2 更高的資料一致性 3 儲存的資料可以共享 4 可以建立資料庫所遵循的標準 5 便於維護資料完整性 6 能夠實現資料的安全性 2 在資料庫發展歷史上,出現了很多不同的資料模型,包括是層次模型 網狀模型 關係模型和物件模型 3 關係型資料庫的基本概念 ...
MySQL 基礎知識
1.如無備註,則表中的第乙個id欄位一定是主鍵且為自動增長 2.如無備註,則數值型別的字段請使用unsigned屬性 3.如無備註,排序欄位order id在程式中預設使用降序排列 4.如無備註,所有欄位都設定notnull,並設定預設值 5.如無備註,所有的布林值字段,如is hot is del...