01、慢查詢
查看是否開啟慢查詢
mysql> show variables like '%slow%’; |
如圖所示:
- 系統(tǒng)變量log_slow_admin_statements
表示是否將慢管理語句例如ANALYZE TABLE和ALTER TABLE等記入慢查詢?nèi)罩?/li> - 啟用log_slow_extra系統(tǒng)變量
(從MySQL 8.0.14開始提供)將導(dǎo)致服務(wù)器將幾個額外字段寫入日志 - Log_slow_slave_statements
從庫默認(rèn)是不寫入慢查詢的,開啟之后從庫慢查詢?nèi)罩緦懭?/li> - slow_query_log
這個參數(shù)設(shè)置為ON,可以捕獲執(zhí)行時間超過一定數(shù)值的SQL語句
開啟慢查詢方法:
mysql> set global slow_query_log=‘ON’ |
- slow_query_log_file
記錄日志的文件名 - slow_launch_time=#
表示如果建立線程花費(fèi)了比這個值更長的時間,slow_launch_threads 計(jì)數(shù)器將增加
修改慢查詢時間為5
Mysql > set long_query_time = 5;mysql>show global status like '%slow%’; |
如圖所示:
02、Explain
可以查看sql語句的具體執(zhí)行情況,索引使用情況
mysql> explain select * from servers;
03、profiling
分析查詢 sql執(zhí)行消耗系統(tǒng)資源情況
mysql> select @@profiling; |
如圖所示:
打開功能:
Mysql > set profiling = 1;Select * from user ; |
如圖所示:
04、其它mysql測試工具
- mysqlslap (mysql自帶性能測試工具)
mysqlslap可以模擬服務(wù)器的負(fù)載,并輸出計(jì)時信息。它包含在MySQL 5.1 的發(fā)行包中,應(yīng)該在MySQL 4.1或者更新的版本中都可以使用。測試時可以執(zhí)行并發(fā)連接數(shù),并指定SQL 語句(可以在命令行上執(zhí)行,也可以把SQL 語句寫入到參數(shù)文件中)。如果沒有指定SQL 語句,mysqlslap 會自動生成查詢schema 的SELECT 語句。
- MySQL Benchmark Suite (sql-bench)
在MySQL 的發(fā)行包中也提供了一款自己的基準(zhǔn)測試套件,可以用于在不同數(shù)據(jù)庫服務(wù)器上進(jìn)行比較測試。它是單線程的,主要用于測試服務(wù)器執(zhí)行查詢的速度。結(jié)果會顯示哪種類型的操作在服務(wù)器上執(zhí)行得更快。
這個測試套件的主要好處是包含了大量預(yù)定義的測試,容易使用,所以可以很輕松地用于比較不同存儲引擎或者不同配置的性能測試。其也可以用于高層次測試,比較兩個服務(wù)器的總體性能。當(dāng)然也可以只執(zhí)行預(yù)定義測試的子集。這些測試大部分是CPU 密集型的,但也有些短時間的測試需要大量的磁盤I/O 操作。
這個套件的最大缺點(diǎn)主要有:它是單用戶模式的,測試的數(shù)據(jù)集很小且用戶無法使用指定的數(shù)據(jù),并且同一個測試多次運(yùn)行的結(jié)果可能會相差很大。因?yàn)槭菃尉€程且串行執(zhí)行的,所以無法測試多CPU 的能力,只能用于比較單CPU 服務(wù)器的性能差別。使用這個套件測試數(shù)據(jù)庫服務(wù)器還需要Perl 和BDB 的支持
- Super Smack
Super Smack是一款用于MySQL 和PostgreSQL的基準(zhǔn)測試工具,可以提供壓力測試和負(fù)載生成。這是一個復(fù)雜而強(qiáng)大的工具,可以模擬多用戶訪問,可以加載測試數(shù)據(jù)到數(shù)據(jù)庫,并支持使用隨機(jī)數(shù)據(jù)填充測試表。測試定義在"smack"文件中,smack 文件使用一種簡單的語法定義測試的客戶端、表、查詢等測試要素。
- Database Test Suite
Database Test Suite 是由開源軟件開發(fā)實(shí)驗(yàn)室(OSDL,Open Source DevelopmentLabs)設(shè)計(jì)的,發(fā)布在SourceForge 網(wǎng)站上,這是一款類似某些工業(yè)標(biāo)準(zhǔn)測試的測試工具集
例如由事務(wù)處理性能委員會(TPC,Transaction Processing Performance Council)制定的各種標(biāo)準(zhǔn)。特別值得一提的是,其中的dbt2 就是一款免費(fèi)的TPC-C OLTP 測試工具(未認(rèn)證)。之前本書作者經(jīng)常使用該工具,不過現(xiàn)在已經(jīng)使用自己研發(fā)的專用于MySQL 的測試工具替代了。
- Percona's TPCC-MySQL Tool
我們開發(fā)了一個類似 TPC-C 的基準(zhǔn)測試工具集,其中有部分是專門為MySQL 測試開發(fā)的。在評估大壓力下MySQL 的一些行為時,我們經(jīng)常會利用這個工具進(jìn)行測試(簡單的測試,一般會采用sysbench 替代),在源碼庫中有一個簡單的文檔說明。
- sysbench
sysbench是一款多線程系統(tǒng)壓測工具。它可以根據(jù)影響數(shù)據(jù)庫服務(wù)器性能的各種因素來評估系統(tǒng)的性能。
例如,可以用來測試文件I/O、操作系統(tǒng)調(diào)度器、內(nèi)存分配和傳輸速度、POSIX 線程,以及數(shù)據(jù)庫服務(wù)器等。sysbench 支持Lua 腳本語言,Lua 對于各種測試場景的設(shè)置可以非常靈活。
sysbench 是我們非常喜歡的一種全能測試工具,支持MySQL、操作系統(tǒng)和硬件的硬件測試。
最后感謝每一個認(rèn)真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?文章來源:http://www.zghlxwxcb.cn/news/detail-722329.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-722329.html
到了這里,關(guān)于數(shù)據(jù)庫性能測試實(shí)踐:慢查詢統(tǒng)計(jì)分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!