【MySQL資料庫】第二章解讀:MySQL基準測試
前言:
基準測試benchmark:基本技能,是針對系統設計的一種壓力測試,是唯一方便有效、可學習系統在給定的工作負載下回發生什麼的方法,他可以觀察系統在不同壓力下的行為,評估系統的容量,掌握哪些是重要的變化,或觀察系統如何處理不同的數據,可在系統實際負載外創建虛擬場景進行測試(掌握系統行為)
正文:
如前言,基準測試很、重、要!可以完成的工作: 總的來說:測試硬體、預估硬體、驗證系統、測壓力、調配置
1、驗證基於系統的假設,確認假設是否符合實際情況;2、重現系統中某些異常行為,以解決;3、測試系統目前的運作情況,利用歷史結果分析診斷無法預測的問題; 4、模擬較高的負載找出系統隨壓力增加可能遇到的擴展性瓶頸;5、規劃未來的業務成長,硬體、網路容量、相關資源;6、測試應用適應可變環境的能力;7、測試不同的硬體、軟體和作業系統配置,證明設備是否配置正確;
對資料庫的基準測試的作用,就是分析在目前的配置下(包括硬體配置、OS、資料庫設定等),資料庫的效能表現,從而找出MySQL的效能閾值,並根據實際系統的要求調整配置。 【源】
與真實壓力不同:真實的複雜多變;基準測試要求盡可能快執行完成,簡單直接、結果易比較、成本低易行
2.2策略
針對系統整體:整合式full-stack
單獨測試MySQL:單一元件式single-component
建議整體測試:要正確設定
1、使用者關注的是整體的效能;2、MySQL並非總是瓶頸;3、更能揭示應用的真實表現
#推薦單獨測試:需要資料
1、需比較不同schema或查詢的效能;2、針對某個特定問題的測試;3、避免漫長,做短期、快速週期循環
2.2.1指標
目標:細化為一系列問題,具體問題具體分析
吞吐量:
單位時間內事務處理數,TPC-C、多重使用者互動應用,每秒事務數,每分鐘事務數
#反應時間或延遲
測試任務所需的整體時間,平均響時、最小響時、最大和所佔百分比;使用圖表
並發性:
#測試應用在不同並發下的效能,關注正在工作中的並發操作、同時工作中的線程數連線數;
web伺服器並發性! =資料庫的,僅表格會話儲存機制資料處理能力;測web並發任何時間有多少並發;
可擴充性
擴充性:為系統增加一倍工作,理性狀況下能獲得兩部的結果;給予系統增加一倍資源可或2倍吞吐量
系統業務壓力可能改變:測可擴展性非常必要;此指標對容量規格有用:提供資訊來發現應用瓶頸
盡可能收集測試需求,基於需求設計測試,忌只專注於部分指標,而忽略其他指標
2.3方法
要盡可能接近真實應用的情況:
使用全集、資料分佈特性、真實分佈參數、是否有多個使用者、配對使用者行為、多重類型、檢查錯誤日誌、系統預熱:重新啟動後多久才達到正常效能容量、持續一定時間;
2.3.1設計、規格
提出問題、目標明確
標準的基準測試:適當的方案TPC-H OLTP
專用的測試:複雜、迭代,取得易還原的生產資料集快照
計畫: 參數、結果文件化、測試詳細記錄
2.3.2時間
基準測試應運行足夠長的時間,無法確認時間可一直運行,持續觀察知道確認系統已穩定
一個簡單的測試規則:等系統看起來穩定的時間至少=系統預熱的時間
2.3.3取得系統效能和狀態
盡量多收集被測系統的資訊
best建置目錄、每執行一輪測試建立單獨子目錄,將結果、設定檔、測試指標、腳本和其他相關說明保存其中
需要記錄是資料:
系統狀態、效能指標:CPU使用率 、磁碟I/O、網路流量統計、SHOWGLOBAL STATUS計數器
合理的間隔,記錄開始時間、利用時間戳記、只是收集就好
2.3.4取得精確的結果
回答一些問題:
是否選擇了正確的基準測試?是否為問題收集了數據?預熱時間是否夠長?
是否採用了錯誤的測試標準:IO密集型引用採用CPU密集型測試標準來評估效能?
測試結果是否可重複?重測前確保系統狀態一致;對症測
影響因素:
外在壓力、效能分析、監控系統、詳細日誌、週期性作業
##注意: 過程中所需資源是專來測試的;測試中盡量少修改參數、透過迭代逐步修改基準測試的參數;認真研究過程中的異常情況並找到原因2.3.5執行測試分析結果自動化:減少人為失誤,Makefile檔案、腳本測試結果滿足目前需求,簡單執行幾輪測試,看看結果就OK了,如結果變化很大,可多運行幾次、或更長結果:
分析,將數字變成知識,最終的目的是回答在設計時的問題
如何抽像有意義的結果,依賴如何收集數據,寫腳本分析數據、減少人為失誤、工作量、可重複、文檔化2.3.6繪圖重要性
一張圖勝過千言萬語嘛,原本有些知識點寶寶是想畫導圖的,但是麼有畫 書中有這麼一個語句,分享一下:SHOW FULL PROCESSLIST SHOW PROCESSLIST顯示哪些線程正在運行,您也可以使用mysqladmin processlist語句得到此信息,如果您有SUPER權限,您可以看到所有線程,否則,您只能看到您自己的線程,不使用FULL關鍵字,則只顯示每個查詢的前100個字元【來源】2.4基準測試工具整合測試工具:整個應用程式 1、ab是Apache HTTP,每秒最多可處理多少請求【參考】【2】 2、http_load:ab類似更靈活,被設計為對web伺服器測試,透過一個輸入檔提供多個URL,隨機選擇進行測試,也可定制,使其按照時間比率進行測試【參考】 3、JMeter,java程序,可加載其他應用並測試其性能,這個聽不錯的,上面兩個沒有接觸過,不評論單一組件式:測MySQL,基於MySQL的系統效能 1、mysqlslap:mysql5.1後自帶,模擬伺服器的負載,輸出計時訊息,可執行並發連線數、指定sql語句,否則自動產生select語句【參考】 2、MySQL Benchmark Suite(sql-bench):自帶、5.7拿掉,基準測試套件,用在不同資料庫伺服器上進行比較測試,單執行緒串列執行,測執行查詢的速度;包含了大量預定義測試,易使用,輕鬆比較不同引擎或配置的效能測試,CPU密集型的,結果會顯示哪些類型的操作在伺服器上執行更快,缺點:測試資料集小且無法用指定的數據,需要perl BDB支援;【參考】
3、Super Smack:MySQL、 PostgreSQL,提供壓力測試和負載平衡,複雜而強大的工具,可模擬多用戶訪問,加載測試資料到庫、隨機資料填充測試表【參考】
4、Database Test Suite:類似某些工業標準測試的工具集,免費TPC-C OLTP測試工具
5、sysbench:多執行緒系統壓測,根據影響資料庫伺服器效能的因素評估系統的效能,全能測試工具,支援MySQL、作業系統、硬體的硬體測試【參考】【2】
MySQL的BENCHMARK()函數:測試特定操作的執行速度,參數可以是需要執行的次數或表達式(任何標量表達式)2.5案例#此處省略n字 #2.6總結 終於等到你~音樂起;建議至少要熟悉sysbench,如何使用oltp(比較不同系統效能) 和fileio 測試;經常執行基準測試,制定一些原則很必要,選擇合適的測試工具、建立腳本庫,收集資訊分析結果,熟練一種繪圖工具; 大佬都這麼說了,所以你知道我的下一篇是什麼了嗎? 相關文章:以上是【MySQL資料庫】第二章解讀:MySQL基準測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

在使用Thelia開發電商網站時,我遇到了一個棘手的問題:MySQL模式設置不當,導致某些功能無法正常運行。經過一番探索,我找到了一個名為TheliaMySQLModesChecker的模塊,它能夠自動修復Thelia所需的MySQL模式,徹底解決了我的困擾。

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。
