學習筆記 《高效能MYSQL》對效能優化定義

2021-07-30 06:33:08 字數 920 閱讀 5824

本文屬於讀書筆記,大部分內容摘抄於《高效能mysql》,摘抄內容版權屬於原作者。

在《高效能mysql》中將西能定義為完成某件任務所需要的時間度量,換句話說,效能即響應時間。按照這個定義,我們通過任務和時間而不是資源來測量效能。原因是資料庫伺服器的目的是執行sql語句,所以它關注的任務是查詢或者語句,如select、update、delete等。資料庫伺服器的效能用查詢的響應時間來度量,單位是每個查詢花費的時間。

而優化的定義被假定是在一定的功能做負載下盡可能地降低響應時間。很多時候我們認為效能優化就是降低cpu利用率,那麼可以減少對資源的使用。但是實際上資源就是用來消耗工作的,所以喲逇時候消耗更多的資源能夠加快查詢速度。cpu利用率只是一種現象,而不是很好的可度量的目標。

同樣如果把效能優化僅僅看成是替身美妙查詢量,這其實只是吞吐量的優化。吞吐量的提公升在某種程度上來說,只是效能優化的副產品。對查詢的優化可以讓伺服器每秒執行更多的查詢,因為每條查詢執行的時間更短了(吞吐量的定義是單位時間內的查詢數量,這正好是我們隊效能的定義的倒數)。

所以如果目標是降低響應時間,那麼久需要理解為什麼伺服器執行查詢需要這麼多時間。然後去減少或者消除這些對獲得查詢結果來說不必要的工作。也就是說,先要搞清楚事件花在**。這就引申出優化的第二個原則:無法測量的就無法有效的優化。所以第一步應該是測量時間花在**。

而測量時間需要合適的測量範圍。合適的測量範圍是說只測量需要優化的活動。有兩種比較常見的情況會導致不合適的測量:

完成一項任務所需要的時間可以分為兩部分:執行時間和等待時間。如果要優化任務的執行時間,最好的辦法是通過測量定位不同的子任務花費的時間,然後優化去掉一些子任務、減低子任務的執行頻率或者替身子任務的效率。而油畫人物的等待時間則相對要複雜一些,因為等待有可能是由其他系統簡介營銷導致,任務之間也可能由於徵用磁碟或者cpu而互相影響。根據時間花在執行還是等待上的不同,診斷也需要不同的工具和技術。

高效能mysql學習筆記

此文已由作者朱笑天授權網易雲社群發布。筆者在工作之餘閱讀了一下高效能mysql,以下的內容對mysql的介紹以及書中涉及一些概念的總結歸納。1.mysql架構 1.最上層負責鏈結處理 認證授權 安全等 2.中間一層涵蓋了mysql的大多數核心功能。包括查詢解析 分析 優化 快取 內建函式 所有的誇儲...

《高效能mysql》學習

整型型別 tinyint,smallint,mediumint,int,bigint 有可選的unsigned屬性 表示不允許負值 例 tinyint unsigned 儲存的範圍是0 255,tinyint則表示 128 127 實數型別 float和double型別支援使用標準的浮點運算進行近似...

建立高效能索引 《高效能Mysql》筆記2

crate table people last name varchar 50 not null,first name varchar 50 not null,dob date not null,gender enum m f not null,key last name,first name,do...