MySQL學習筆記(1)

2021-05-23 12:35:08 字數 1338 閱讀 7896

第一章 mysql架構

客戶連線及認證,在伺服器擁有自己的執行緒,每個連線所屬的查詢都會在指定的某個單獨執行緒中完成、

認證方式:基於使用者名稱、原始主機資訊和口令。

對查詢請求,首先查詢快取,若不存在則對查詢進行解析,建立解析樹,對其進行優化(優化器)

----------優化器不關心儲存引擎的差異,但儲存引擎可能對查詢優化過程產生影響。

併發機制

1.共享鎖/排他鎖

2.鎖粒度

mysql鎖策略由儲存引擎來支援。

表鎖:除了儲存引擎支援外,mysql本身能使用各種有效的表鎖,例如alter table語句中,使用表鎖而無需考慮儲存引擎。

行鎖:僅由儲存引擎來支援,如innodb

事務:支援acid特性

不同級別的隔離性:

read uncommitted、read committed、repeatable read、serializable

mysql > set session transaction isolation level read committed

死鎖處理:innodb通過回滾擁有最少排他行級鎖的事務來處理死鎖。

事務日誌:預寫式日誌

1.儲存引擎更新資料在記憶體中的拷貝

2.將資料改變寫入事務日誌

3.在某個時間統一將表資料更新到磁碟中。

mysql的事務特性

mysql ab提供了三個事務型儲存引擎:innodb、ndb cluster、falcon

1.autocommit(自動提交):除非顯式的開始乙個事務,否則將把每個查詢視為單獨乙個事務自動執行。

mysql > show variables like 'autocommit';

2.在事務中混合使用儲存引擎,mysql伺服器層並不管理事務,而是由儲存引擎來實現事務的處理。這意味著在混合事務性和非事務性表的

事務中,若需要回滾時,非事務性表上做的修改將無法取消。

3.支援隱式和顯式鎖定。

多版本控制

innodb:在每個資料行中記錄版本號,並為每個資料行增加兩個隱含值:行的建立時間和刪除時間

每開始乙個事務,版本號都會遞增。

在隔離級別為repeatble read時,mvcc應用方式為:

select:

——版本早於當前事務版本的資料行

——刪除版本的行版本必須大於當前事務版本

insert:

為每個新增行記錄當前版本號

delete:

為每個刪除行記錄當前辦不號,作為行刪除標識。

update:

為每個需要更新的行,建立乙個新的行拷貝,並為其記錄當前版本號,同時也為舊行記錄版本號作為舊行的刪除版本標識。

MySQL學習筆記1

前言 部落格裡更新的mysql知識多為總結常用方法方式,不保證嚴格的學術性。一.mysql 簡介 mysql是乙個小型關係型資料庫管理系統 二.mysql進入方法 1 直接開啟安裝好的mysql軟體,輸入密碼即可 2 在cmd中進入 轉到 mysql的安裝目錄中的 bin 目錄 輸入 mysql u...

mysql學習筆記(1)

1.官網 1.2 安裝 2.使用xampp for windows 2.1 官網 2.2 重新編譯版 二 資料庫基本指令 1.資料庫操作 1.1 關閉資料庫 net stop mysql 1.2 開啟資料庫 net start mysql 1.3 登入mysql 將本次使用記錄儲存到c mysql....

mysql 學習筆記1

1 while迴圈的乙個方便的用法是迴圈處理乙個sql查詢結果中的資料行。2 mysqli fetch array 這個內建的php函式從乙個資料庫查詢的結果中獲取乙個資料行,可以搭配while反覆呼叫這個函式逐行的讀取資料。3 drop table tablename,這個sql語句會從資料庫刪除...