日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库 学习总结

發布時間:2023/12/20 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库 学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • mysql基礎
        • mysql查詢流程
        • mysql的頁
        • mySQL索引
      • 事務
        • 事務的特性
        • 事務的開啟與關閉
        • redo
        • undo
        • 事務并發存在的一致性問題
        • 事務隔離級別
        • MVCC 和readView
        • x鎖 和 s鎖

mysql基礎

mysql查詢流程

mysql的頁

mysql中各個數據頁可以組成一個雙向鏈表,每個數據頁中的記錄按照主鍵值從小到大的順序組成一個單鏈表。
每個數據頁都會存儲在它里面的記錄生成一個頁目錄。
頁目錄中是對數據主鍵分組形成的槽,查找是利用二分法可以查找到槽所指向的分組,然后遍歷分組,可以得到記錄數據。

mySQL索引

mySQL的索引常見的是B+樹索引,(innoDB還會自動生成哈希索引)。B+樹是一種平衡樹,所有數據都保存在葉子節點,在葉子節點之上的節點只保存鍵值和頁值。還可以簡歷二級索引,就是建立不是按照逐漸排序的索引,二級索引能提高檢索效率,但是會降低插入,刪除操作的效率。

事務

事務的特性

原子性:一個事務只能發生或者不發生,一個食物中的操作不可分割
一致性:數據庫中的數據與真實數據具有一致性
隔離性:多個事務之間不影響
持久性:事務一旦提交,就會永久有效

事務的開啟與關閉

開啟:begin 或者 start transaction args
提交:commit:(也可以隱式提交)
回滾(中止):rollback
保存點:savepoint,當事務比較長的時候中間可以用保存點保存。

redo

redo的存在是為了保證事務的持久性,就是說當提交了事務之后,提交的事務應該被刷新到磁盤中,但是如果每次提交修改就將整個頁刷新非常浪費時間,所以每次只需要把修改的記錄日志redo刷新到磁盤中就可以了,這樣如果系統崩潰了,可以借用redo日志文件恢復系統。
(這里面還有很多技術細節)

undo

記錄恢復修改操作的日志

事務并發存在的一致性問題

臟寫:一個事務修改另一個未提交事務修改的數據
臟讀:一個事務讀取另一個未提交事務修改的數據’
不可重復讀:一個事務修改另一個未提交事務讀取的數據
幻讀:在未提交的檢索事務的時候寫入了滿足檢索要求的記錄。

事務隔離級別


mysql中設置事務隔離級別的語句:
set [GLOBAL|SESSION] transaction isolation level

MVCC 和readView

MVCC就是多版本并發訪問控制,具體就是維護一個版本鏈和創建readview,通過版本鏈和readview來實現在read comimitted 和 repeatable read隔離級別下執行,保證讀寫和寫讀操作的并發執行。
MVCC的版本鏈:當對記錄更新 修改 添加等操作時生成一個版本連,每一條記錄都有一個非減trx_id標記。trx_id代表事務發生的先后順序。

ReadView:
readView主要是記錄當前事務中哪些事務還沒有提交,以此保證訪問到的都是已經提交的事務。readView中的數據如下:
m_ids :記錄中當前系統中活躍的事務trx_id鏈表
min_trx_id:最小的活躍事務trx_id
max_trx_id:在生成readview是系統應該分配給下一個事務的trx_id.

配合使用 將版本鏈中事務的trx_id與readview中的記錄比較,當trx_id小于min_trx_id 或者大于min_trx_id但是小于max_trx_id而且不在m_ids中,表示這條事務可見,如果大于等于max_trx_id或者在m_ids中,則表示這條記錄不可見,需要看下一條。

x鎖 和 s鎖

X鎖 排他鎖,當進行寫操作時,對記錄加上X鎖,其他操作就無法獲得加鎖的機會
s鎖 共享鎖 ,當進行讀操作時,對記錄加上S鎖,可以允許繼續加S鎖,不能加X鎖。
也就是X鎖和S鎖實現了 讀-讀 并發可以,讀寫 寫讀 寫寫 并發不可以。
S鎖和X鎖的粒度可以在表級也可以在行級,在表級加鎖后還可以在行級加鎖,規則同上。

總結

以上是生活随笔為你收集整理的数据库 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。