MySQL筆記系列:MySQL架構

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   strong   on   

  • MySQL邏輯架構
       
串連管理與安全性:
1、MySQL會為每一個用戶端串連分配一個線程,這個串連的查詢只會在這個單獨的線程執行。伺服器會負責緩衝線程,因此不需要為每一個建立立的串連建立或則銷毀線程。
2、當用戶端串連到MySQL伺服器時,伺服器將對其進行身份認證。認證基於使用者名稱、主機資訊和密碼,也可以基於SSL的方式進行串連。一旦用戶端串連成功,伺服器會繼續驗證該用戶端是否具有執行某個特定查詢的許可權。
最佳化與執行:
1、MySQL會解析、查詢,並建立內部資料結構,然後對其進行各種最佳化,包括重寫查詢、決定表的查詢順序,以及選擇合適的索引等。使用者可以通過特殊的關鍵字提示(hint)最佳化器,影響它的決策過程。也可以請求最佳化器解釋最佳化過程的各個因素,使使用者可以指定伺服器時如何進行最佳化決策的,從而去重構查詢,最佳化查詢。
2、對於select語句,在解析查詢之前,伺服器會先檢查查詢快取(query cache),如果能夠在其中找到對應的查詢,伺服器不必再執行查詢解析、最佳化和執行整個過程,而是直接返回查詢快取中的結果。
  • MySQL並發控制
1、只要有多個查詢需要在同一時刻修改資料,都會產生並發控制的問題。
2、MySQL可以在兩個層面實現並發控制:伺服器層和儲存引擎層。
MySQL鎖管理機制
MySQL鎖的執行流程
鎖粒度
  • 表級鎖
開銷小,加鎖快,不會出現死結,鎖定粒度大,發生鎖衝突的機率最高,並發度最低。
  • 行級鎖
開銷稍大,加鎖慢。會出現死結。鎖定粒度最小,發生鎖衝突的機率最低,並發度也最高。
  • 頁面鎖
開銷和加鎖時間介於表鎖和行鎖之間,會出現死結,鎖定粒度介於表鎖和行鎖之間,並發度一般。
表級鎖的鎖模式
  • 表共用讀鎖(Table Read Lock)和表獨佔鎖(Table Write Lock,排它鎖)
  • MyISAM在執行查詢語句(select)前,會自動給設計的所有表加讀鎖,在執行更新操作(update、delete、insert等)前,會自動給設計的表加鎖。對myisam表進行操作,會有以下情況:
1、對myisam表的讀操作(加讀鎖),不會阻塞其他進程對同一表的讀請求,但會阻塞對同一表的寫請求。只有當讀鎖釋放後,才會執行其他進程的寫操作。
2、對myisam表的寫操作(加寫鎖),會阻塞其他進程對同一表的讀和寫操作,只有當寫鎖釋放後,才會執行其他進程的讀寫操作。
  • 簡而言之,讀鎖會阻塞寫,但是不會阻塞讀,寫鎖則會把讀和寫都阻塞
 
  • MySQL事務
事務的ACID特性
  • 原子性(Atomicity)
一個事務必須被視為一個不可分割的最小工作單元,整個事務中所有操作要麼全部提交成功,要麼全部復原。
  • 一致性(Consistency)
資料庫總是從一個一致性狀態轉換到另一個一致性狀態。
  • 隔離性(Isolation)
通常來說,一個事務所做的修改在最終提交前,對其他事務是不可見的。
  • 持久性(Durability)
一旦事務提交,則其所做的修改會永久儲存到資料庫中。即使資料庫崩潰,修改的資料也不會丟失。
  • MySQL時間軸
3.23  2001
4.0    2003
4.1    2005
5.0    2006
5.1    2008
5.5    2010
5.6    2013
MySQL5.6部分新特性
  • 支援多線程複製。事實上市針對每個database開啟相應的獨立線程。即每個庫有一個單獨的SQL Thread,如果線上業務中,只有一個database或者絕大多數壓力集中在個別database的話,多線程並發複製特性就沒有意義了。
  • 啟用GTID,無須再知道binlog和POS點,需要知道master的IP、連接埠、帳號和密碼即可,因為同步複製是自動的,MySQL通過內部機制GTID自動找點同步。
  • InnoDB全文檢索索引
  • InnoDB統計資訊收集更加精準,執行計畫更加精準。
  • InnoDB Undo資料從系統資料表空間獨立出來為單獨的資料表空間,SSD
  • InnoDB Redo記錄檔大小調整為512G,以前最大為4G
  • 時間類型欄位Time、DataTime、Timestamp支援的粒度有秒擴充到

 

  • MySQL開發模式
  • MySQL按照使用者群分為社區版和企業版
  • MySQL按照更新發布為:
GA(General Availability):官方推薦使用版本
RC (Release Candidate):候選版本,該版本最接近正式版
Alpha和Bean:測試版,Alpha為內側版,Bean為公測版

MySQL筆記系列:MySQL架構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.