一.
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的儲存...