mysql和儲存引擎知識點整理
基本概念:
1、索引:為了快速查詢(外存)而建立的資料結構。當資料很大時,因為可能本身很大,所以一般是存在外存的。
2、儲存引擎:可以認為是mysql的後端,前端是sql解析和處理;中端是sql優化等
3、為什麼b+樹比紅黑樹好?b+樹深度小,索引表的級數少,進而需要的磁碟io次數少(一次讀出大量比多次讀少量要快很多)
4、事物的acid特性:原子性(要麼全執行,要麼不執行)、一致性(加的和減的要一致),隔離性(併發),永續性(真的存下來)
一、sql處理過程:
解析、加鎖、核對許可權、生成和執行最優查詢計畫(優化)、呼叫儲存引擎來執行操作
二、mysql最核心的模組:
查詢和優化系統,儲存系統,安全管理
三、myisam特點:
1、不支援事物安全,速度快。3種檔案,.myi(索引) .myd(資料) .fm(表定義)
2、靜態表,每一行長度一樣速度快;動態表:盡量不超過長度,否則會產生碎片(不連續儲存) 壓縮 表:唯讀。
3、索引 r樹或b樹演算法;索引的內容是 索引值 索引指標
四、innodb:
1、支援事物,行級別的鎖;雙寫入,插入快取(不是每次都磁碟io),適應式雜湊索引
2、innodb的索引實現:資料檔案本身按著主key來索引,其他索引是先索引到主key,之後再用主索引去查。所以一般使用innodb時主key要unique(比如自增),不然的話維護b+樹會比較費效率
五、事物的實現
一般是利用log系統來實現。即先操作日誌,後運算元據;先取得鎖之後運算元據。
六、記憶體池中快取的內容:
索引頁、資料頁、undo頁、插入緩衝(insert buffer)、自適應雜湊索引(adaptive hash index)、鎖資訊(lock info)、資料字典資訊(data dictionary)
MySQL知識點整理
樂觀鎖介紹 樂觀鎖 optimistic locking 相對悲觀鎖而言,樂觀鎖假設認為資料一般情況下不會造成衝突,所以在資料進行提交更新的時候,才會正式對資料的衝突與否進行檢測,如果發現衝突了,則讓返回使用者錯誤的資訊,讓使用者決定如何去做。那麼我們如何實現樂觀鎖呢,一般來說有如下方式 使用資料版...
mysql知識點整理
為了備忘,就總結了一下 一 b樹和b 樹的區別 1.b樹根節點和葉子節點會存資料。2.而b 樹只有葉子節點會存資料,且所有葉子節點是鍊錶連線,獲取資料只需要直接從葉子節點的鍊錶中獲取,效率更高 二 樂觀鎖和悲觀鎖 1.樂觀鎖 樂觀鎖具體實現是由應用程式控制,通過比對版本號或者時間戳是否相同來判斷資料...
MySQL相關知識點整理
文章目錄 一 資料庫的三正規化 第一正規化 強調的是原子性,即資料庫表的每一列都是不可分割的原子資料項 第二正規化 要求實體的屬性完全依賴於主關鍵字。第三正規化 任何非主屬性不依賴於其它非主屬性。二 一張自增表裡面總共有 7 條資料,刪除了最後 2 條資料,重啟 mysql 資料庫,又插入了一條資料...