高效能MYSQL讀書筆記1

2021-07-31 08:58:40 字數 884 閱讀 5503

一.

1 每個 客戶端連線都會在伺服器程序中擁有乙個執行緒,這個連線的查詢只會在這個單獨的執行緒中執行,該執行緒只能輪流在某個cpu核心或者cpu中執行.伺服器會負責快取執行緒,因此不需要為每乙個新建的連線建立或銷毀執行緒.

對於select語句,在解析查詢之前,伺服器會先檢查查詢快取,如果能在其中找到對應的查詢,伺服器則不再執行查詢解析,優化和執行的整個過程,而直接返回查詢快取中的結果.

對資料的併發處理:

共享鎖和排他鎖,也叫讀鎖或寫鎖.

讀鎖是共享的,相互不阻塞的.多個客戶在同一時刻可以同時讀取同乙個資源,而互不干擾.

寫鎖是排他的,會阻塞其他的寫鎖或讀鎖.只有這樣,才能保證同一時刻只有乙個使用者能執行寫,並防止其他使用者讀取正在寫入的同一資源

鎖粒度

加鎖也需要消耗資源,包括獲得鎖,檢查鎖是否解除,釋放鎖.

一般都是表上施加行級鎖(row level lock)

兩種鎖策略:

表鎖:鎖定整張表,阻塞其他使用者對該錶的所有讀寫操作.

行級鎖:

最大程度的支援併發處理,(但因為每行都可能有鎖的操作,鎖的開銷最大).innodb實現了行級鎖.行級鎖只在儲存引擎層實現,而伺服器層沒有實現.

事務

隔離級別

未提交讀:事務中的修改,在事務未提交前,其他事務也是可見的,這種情況叫髒讀.在實際中很少使用.

提交讀:大多數資料庫都是這種隔離級別的(mysql不是).提交事務前,其他事務不能看到修改的資料

可重複讀:mysql的預設隔離級別.

死鎖:

innodb處理死鎖:將持有 最少行級排他鎖的事務進行回滾,

mysql中的事務:

高效能mysql讀書筆記1

譯者序言 本書的定位 系統的從各個方面講述乙個高效能mysq應用應該怎麼做,區別於市面上那些關於mysql開發書籍只是停留在學習mysql基本語句,本書提供了作者一些mysql調優的基準測試從而幫助理解mysql內部的工作機制,本書強調mysql的可用性 準確性以及效能。本書根據mysql5.0穩定...

高效能MySQL 讀書筆記

第4章 schema與資料型別優化 第5章 建立高效能的索引 三星索引 最左匹配原則 高效能索引策略 多列索引 mysql採用的是分層架構 上層是server層,下層是儲存引擎層。sql標準中定義了四種隔離級別 隔離級別 定義髒讀 不可重複讀 幻讀加鎖讀 讀未提交 read uncommitted,...

高效能Mysql 讀書筆記

mysql與眾不同的特性是它的儲存引擎架構,這種架構將查詢處理即其他的任務系統和資料的儲存 提取相分離.第二層架構中,大多數的mysql的核心服務功能都在這一層,包括查詢解析,分析優化,快取以及所處的內建函式,所有的跨儲存引擎的功能都在這一層實現 儲存過程,觸發器,檢視等.第三層包含mysql的儲存...