MySQL

MySQL存儲原理:
mysql的存儲過程是函數經過編譯並存儲在數據庫中的一段SQL語句集合,相當於一個函數編譯執行的過程,只是函數不需要有返回值,直接存儲編譯後的數據


一、數據庫的基本要素(ACID):
1.原子性:事務操作是不可分割的,要麼完成,要麼不執行
2.一致性:多個事務並行執行,執行結果必須按照某一順序執行相同
3.隔離性:多個事務執行互相不干擾,執行中結果對其他事務必須透明
4.持久性:執行成功的事務,對數據庫改變必須是永久的,不能應爲某些原因(掉電)消失


二、數據庫事物隔離級別:
讀未提交(read-uncommitted)
讀提交(read-committed)
可重複讀(repeatable-read)
串行化(serializable)


三、數據庫設計三範式:
1NF:屬性不可再分,即字段不能再分(最基本的數據單元)
2NF:滿足1NF,且非主鍵字段必須完全依賴主鍵
3NF:滿足2NF,且非主鍵字段必須直接依賴主鍵,不能間接依賴


四、事物併發問題:
1.髒讀:事務A讀取了事務B更新的數據,當B事務回滾,A事務讀取到的數據都爲髒數據
2.不可重複讀:事務A多次讀取同一數據,事務B在事務A多次讀取中修改了數據,導致事務A讀取的數據不一致
3.幻讀:事務A在針對表中數據進行修改,涉及表中全部數據行,同時事務B也修改了表中的某一行數據(插入一行新數據),那麼事務A就會發現表中還有沒有修改的數據行,產生了幻讀(讀提交可解決)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章