MYSQL之高效能的mysql(二) 基準測試

2022-08-13 16:36:13 字數 1722 閱讀 2050

如果不清楚系統當前的效能,就無法確認某些優化的效果如何。也可以利用歷史的基準測試結果來分析診斷一些無法**的問題。

基準測試可以評估在專案未來的負載下,需要什麼樣的硬體,需要多大容量的網路,以及其他相關資源。這有助於降低系統公升級和重大變更的風險。

例如,通過基準測試,可以發現系統在隨機的併發峰值下的效能表現,或者是不同配置的伺服器之間的效能表現。基準測試也可以測試系統對不同資料分布的處理能力。

比如raid 5還是raid 10更適合當前的系統?如果系統從ata硬碟公升級到san儲存,對於隨機寫效能有什麼幫助?linux 2.4系列的核心會比2.6系列的可擴充套件性更好嗎?公升級mysql的版本能改善效能嗎?為當前的資料採用不同的儲存引擎會有什麼效果?所有這類問題都可以通過專門的基準測試來獲得答案。

通過基準測試來對新系統進行壓測,可以發現了很多錯誤的配置,以及硬體元件的失效等問題。因此在新系統正式上線到生產環境之前進行基準測試是乙個好習慣,永遠不要相信主機提供商或者硬體**商的所謂系統已經安裝好,並且能執行多快的說法。如果可能,執行實際的基準測試永遠是乙個好主意。

測試整個應用系統,包括web伺服器、應用**、網路和資料庫是非常有用的,因為使用者關注的並不僅僅是mysql本身的效能,而是應用整體的效能。

mysql並非總是應用的瓶頸,通過整體的測試可以揭示這一點。

只有對應用做整體測試,才能發現各部分之間的快取帶來的影響。

整體應用的整合式測試更能揭示應用的真實表現,而單獨元件的測試很難做到這一點。

需要比較不同的schema或查詢的效能。

針對應用中某個具體問題的測試。

為了避免漫長的基準測試,可以通過乙個短期的基準測試,做快速的「週期迴圈」,來檢測出某些調整後的效果。

吞吐量指的是單位時間內的事務處理數。這一直是經典的資料庫應用測試指標。常用的測試單位是每秒事務數(tps),有些也採用每分鐘事務數(tpm)。

這個指標用於測試任務所需的整體時間。根據具體的應用,測試的時間單位可能是微秒、毫秒、秒或者分鐘。使用圖表有助於理解測試結果。可以將測試結果繪製成折線圖(比如平均值折線或者95%百分比折線)或者散點圖,直觀地表現資料結果集的分布情況。

併發性的測量完全不同於響應時間和吞吐量。它不像是乙個結果,而更像是設定基準測試的一種屬性。併發性測試通常不是為了測試應用能達到的併發度,而是為了測試應用在不同併發下的效能。

簡單地說,可擴充套件性指的是,給系統增加一倍的工作,在理想情況下就能獲得兩倍的結果(即吞吐量增加一倍)。或者說,給系統增加一倍的資源(比如兩倍的cpu數),就可以獲得兩倍的吞吐量。

規劃基準測試的第一步是提出問題並明確目標。然後決定是採用標準的基準測試,還是設計專用的測試。

然後,針對資料執行查詢。可以建立乙個單元測試集作為初步的測試,並執行多遍。

建立將引數和結果文件化的規範,每一輪測試都必須進行詳細記錄。文件規範可以很簡單,比如採用電子**(spreadsheet)或者記事本形式,也可以是複雜的自定義的資料庫。需要記住的是,經常要寫一些指令碼來分析測試結果,因此如果能夠不用開啟電子**或者文字檔案等額外操作,當然是更好的。

基準測試應該執行足夠長的時間,這一點很重要。有時候無法確認測試需要執行多長的時間才足夠,可以讓測試一直執行,持續觀察直到確認系統已經穩定。下圖是系統磁碟讀和寫吞吐量的時序圖。

在執行基準測試時,需要盡可能多地收集被測試系統的資訊。

mysql基準測試套件

sysbench

高效能mysql 樹 高效能mysql精要

1 explain 中 extra using index 表示覆蓋索引,sql優化中最好能使用覆蓋索引,否則 二級索引 需要回表查詢。所謂覆蓋索引,是指要查詢的列正好是索引,而條件也是這個索引之一 2 where 語句中 條件等於主鍵的 在核心索引層完成,條件等於非索引的,在服務層完成 3 讀索引...

mysql高效能索引 mysql高效能索引( )

在開發中,我們知道大多數應用的瓶頸在於sql語句的執行時耗,在這裡並不討論sql語句的安全,僅僅討論高效能sql語句,而與高效能sql語句緊密相連的就是傳說中的 索引。索引 一種工作在儲存引擎端的用於快速找到記錄的一種資料結構。mysql使用索引的方式是 先找到索引的值,再根據索引的值找到資料行。索...

高效能MYSQL(複製)

複製概述 複製解決的基本問題是讓乙個伺服器的資料與其他伺服器保持同步。一台主庫的資料可以同步到多台備庫上,備庫本身也可以被配置成另外一台伺服器的主庫。複製方法 基於行的複製 基於語句的複製。實現 在主庫上記錄二進位制日誌,在備庫重放日誌的方式來實現非同步資料複製。會出現資料不一致,並且無法保證主備之...