1.資料庫語句執行過程
- 客戶端
- 聯結器 -> 管理連線,許可權驗證
- 查詢快取 -> 命中快取,直接返回
- 分析器->詞法和語法分析
- 優化器 -> 生成執行計畫,索引選擇
- 執行器 -> 操作引擎,返回結果
2.資料庫引擎
- innodb
優點: 支援事務,外來鍵,行鎖.
缺點: 不儲存行數,查詢時需要掃瞄全部
- myisam
優點: 支援全文搜尋,頻繁查詢.效能快速,表鎖
缺點: 不支援事務,外來鍵等等,讀寫互斥,,當有大量更新時,查詢可能被阻塞
- isam
- heap
3.資料庫索引
原理:
使用b樹 或者 b+樹, 後者更加適合.
優點: 提高查詢速度.
缺點: 占用額外的物理空間,後期維護難,插入資料時,需要同步維護索引
- 主鍵索引(primary key)
- 唯一索引(unique key)
- 外來鍵索引(foreign key)
- 檢查索引(check key)
4.資料庫語言分類
- dql (資料庫查詢語言)
select
- dml (資料庫管理語言)
insert
update
delete
- ddl (資料定義語言)
create
- dcl (資料庫控制語言)
grant
5.儲存過程
優點:
一次建立,多次使用,呼叫簡單,可供外部程式使用.
在執行之前,語法和詞法分析已經完成,優化了執行順序,已經編譯好的sql語句,可以極大提高執行速度.
可以降低網路通訊量
缺點: 移植性差
觸發器是一種特殊的儲存過程, 主要通過事件觸發來執行.
6.事務
事務的四大特性acid
a.原子性
要不全部執行,要麼失敗,全部回滾.
c.一致性
保證資料執行前後的一致性.
i.隔離性
多個使用者併發訪問同乙個表,資料庫為每乙個使用者開啟的事務都不能被其他使用者事務干擾.
多個併發事務,要相互隔離.
d.永續性
事務一旦提交,對資料的改變是永久性的.
隔離級別:
1. serializable (序列化):可避免髒讀、不可重複讀、幻讀的發生。
2. repeatable read (可重複讀):可避免髒讀、不可重複讀的發生。
3. read committed (讀已提交):可避免髒讀的發生。
4. read uncommitted (讀未提交):最低級別,任何情況都無法保證。
資料庫知識梳理
用了8天的時間,把資料庫又簡單的看了一遍,能留下印象的,並不多。也許,知識,也需要反覆的咀嚼。我的意識裡,知識,應該先記住,才會用。所以,我想先把它們變成自己的,然後,再消化,吸收。資料庫,只看了平時用到的最多的部分,沒有把所有的理論都看完。在我的腦海裡,資料庫知識包括以下內容 1 ddl語言 資料...
MySQL資料庫相關知識梳理
mysql基本知識梳理int stdcall mysql query mysql mysql,const char q 連線上資料庫後,將連線上資料庫額控制代碼和執行的sql語句傳入到函式中即可執行該語句。mysql res res res mysql store result mysql mysq...
資料庫知識點梳理
rdbms mysql 主 oracle,pg,sql server 了解 安裝,基本連線使用,備份恢復,高可用,集群。redis,mongodb,es mysql 5.6,5.7.20 二進位制,rpm,原始碼包5.6 到8.0 5.6 到5.7mysql master thread 幹活的執行緒...