我們客戶端傳送乙個select是直接交給連線層來處理,而它的作用就是提供與客戶端連線的服務.連線層只是與客戶端建立起連線.完成一些類似連線處理,授權認證 及相關的安全方案. 在該層上引入了連線池的概念.
提供核心的服務功能,如sql介面,完成快取的查詢,
sql的分析和優化部分及內建函式的執行.
服務包括以下內容:
當我們編寫sql語句執行時,優化器會覺得我寫的sql語句效能不夠好,這個時候,優化器會自己寫乙個等價於跟我寫的執行後結果一致的sql語句進行代替.
快取伺服器會查詢內部的快取,如果快取空間足夠大,這樣可以解決大量讀操作的環境中,能夠很好的提公升系統效能
儲存引擎是真正負責mysql中資料的儲存和提取,
伺服器通過api與儲存引擎進行通訊,
不同的儲存引擎提供的功能不同,
可以根據自己的實際需求來進行選取
常見的有:lnnodb、mylsam、memory
lnnodb 【mysql預設】:它在設計的時候,它是事物優先.
原理:因為它是行鎖,我每一條資料都要鎖,
鎖的太多,效能就降低了,雖然效能降低了,
但是我適合高併發了,就不容易出錯了
mylsam:效能優先
原理:因為它是表鎖,
對於表裡面的十條資料來說是不受影響的,
對十條鎖一次就完了,所以效能快
memroy:
memory儲存引擎是mysql中的一類特殊的儲存引擎。其使用儲存在記憶體中的內容來建立表,而且所有資料也放在記憶體中,因此,其基於記憶體中的特性,這類表的處理速度會非常快,但是,其資料易丟失,生命周期短
主要是將資料儲存在執行的計算機檔案系統之上,
並完成與儲存引擎的互動.
1.首先客戶端發出乙個select操作
2.連線層接收後給服務層
3.服務層對你的查詢進行乙個優化
並把優化結果給引擎層
4.選擇當前資料庫的引擎,選完引擎後
引擎將最終的資料交給了儲存層
5.儲存層,用儲存層來存資料
mysql容器效能優化 MySQL高階 效能優化
1.應用優化 1.1 使用資料庫連線池 使用資料庫連線池,避免資料庫連線頻繁的建立和銷毀,進而減少資源的消耗,提高資料庫的訪問效能。1.2 減少對mysql的訪問 1.2.1 避免資料重複檢索 能一次檢索獲取到結果,就不要進行倆次檢索,減少對資料庫的無用重請求。1.2.2 增加cache層 增加快取...
MySQL高階效能優化 效能分析
是指資料庫表的每一列都是不可分割的基本資料項,同一列不能有多個值。第一正規化 1nf 是對關係模式的基本要求,不滿足第一正規化的資料庫就不是關聯式資料庫 要求資料庫表中的每個例項或行必須可以被唯一的區分。設定主鍵來區分 要求乙個資料庫表中不包括已在其它表中已包含的非主關鍵資訊。兩張表不要重複的字段,...
MySQL效能優化之高階篇
4.1 索引是什麼,建立索引的原因 索引用於快速找出在某個列中有一特定值的行,不使用索引mysql必須從第一條記錄開始讀完整個表,直到找出相關的行,表越大查詢資料所花費的時間就越多,如果表中查詢的列有乙個索引,mysql能夠快速到達乙個位置去搜尋資料檔案,而不必檢視所有資料,那麼將會節省很大一部分時...