MySQL中使用show status語句查詢MySQL的性能參數
創新互聯專業為企業提供榆林網站建設、榆林做網站、榆林網站設計、榆林網站制作等企業網站建設、網頁設計與制作、榆林企業網站模板建站服務,十載榆林做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
語法:
show status like [statement];
常用statement說明:
# 查詢連接MySQL服務器的次數
# 查詢MySQL服務器上線的時間
# 查詢慢查詢的次數
# 查詢 查詢操作的次數
查看MySQL服務器配置信息 :
查看MySQL服務器運行的各種狀態值 :
慢查詢:
連接數:
key_buffer_size 是對MyISAM表性能影響最大的一個參數
臨時表:
查看open table :
進程使用情況:
查詢緩存(query cache) :
文件打開數(open_files) :
表鎖情況 :
表掃描情況 :
查詢吞吐量:
連接情況:
分析查詢語句
mysql提供了explain語句和describe語句,進行分析查詢語句
EXPLAIN的語法:
說明:
示例:
DESCRIBE語句
使用方法與EXPLAIN語句是一樣的,并且分析結果也是一樣的。
語法:
mysql中提高性能的最有效的方式:
1, 對數據表設計合理的索引。索引提供了高效訪問數據的方法,并且加快了查詢的速度。
使用索引查詢幾種特殊情況:
一,獲取mysql用戶下的進程總數
ps -ef | awk '{print $1}' | grep "mysql" | grep -v "grep" | wc-1
二,主機性能狀態
# uptime
[root@ ~]# uptime
13:05:52 up 53 days, 52 min, 1 user, load average: 0.00, 0.00, 0.00
三,CPU使用率
# top
或
# vmstat
四,磁盤IO量
# vmstat 或 # iostat
五,swap進出量[內存]
# free
測試何種指標
在開始執行甚至是在設計基準測試之前 需要先明確測試的目標 測試目標決定了選擇什么樣的測試工具和技術 以獲得精確而有意義的測試結果 可以將測試目標細化為一系列的問題 比如 這種CPU 是否比另外一種要快? 或 新索引是否比當前索引性能更好?
有時候需要用不同的方法測試不同的指標 比如 針對延遲(latency)和吞吐量(throughput)就需要采用不同的測試方法
請考慮以下指標 看看如何滿足測試的需求
吞吐量
吞吐量指的是單位時間內的事務處理數 這一直是經典的數據庫應用測試指標 一些標準的基準測試被廣泛地引用 如TPC C(參考// tpc ) 而且很多數據庫廠商都努力爭取在這些測試中取得好成績 這類基準測試主要針對在線事務處理(OLTP)的吞吐量 非常適用于多用戶的交互式應用 常用的測試單位是每秒事務數(TPS) 有些也采用每分鐘事務數(TPM)
響應時間或者延遲
這個指標用于測試任務所需的整體時間 根據具體的應用 測試的時間單位可能是微秒 毫秒 秒或者分鐘 根據不同的時間單位可以計算出平均響應時間 最小響應時間 最大響應時間和所占百分比 最大響應時間通常意義不大 因為測試時間越長 最大響應時間也可能越大 而且其結果通常不可重復 每次測試都可能得到不同的最大響應時間 因此 通??梢允褂冒俜直软憫獣r間(percentile responsetime)來替代最大響應時間 例如 如果 % 的響應時間都是 毫秒 則表示任務在 % 的時間段內都可以在 毫秒之內完成
使用圖表有助于理解測試結果 可以將測試結果繪制成折線圖(比如平均值折線或者 % 百分比折線)或者散點圖 直觀地表現數據結果集的分布情況 通過這些圖可以發現長時間測試的趨勢 本章后面將更詳細地討論這一點
并發性
并發性是一個非常重要又經常被誤解和誤用的指標 例如 它經常被表示成多少用戶在同一時間瀏覽一個Web 站點 經常使用的指標是有多少個會話注 然而 HTTP協議是無狀態的 大多數用戶只是簡單地讀取瀏覽器上顯示的信息 這并不等同于Web 服務器的并發性 而且 Web 服務器的并發性也不等同于數據庫的并發性 而僅僅只表示會話存儲機制可以處理多少數據的能力 Web 服務器的并發性更準確的度量指標 應該是在任意時間有多少同時發生的并發請求
在應用的不同環節都可以測量相應的并發性 Web 服務器的高并發 一般也會導致數據庫的高并發 但服務器采用的語言和工具集對此都會有影響 注意不要將創建數據庫連接和并發性搞混淆 一個設計良好的應用 同時可以打開成百上千個MySQL 數據庫服務器連接 但可能同時只有少數連接在執行查詢 所以說 一個Web 站點 同時有 個用戶 訪問 卻可能只有 ~ 個并發請求到MySQL 數據庫
換句話說 并發性基準測試需要關注的是正在工作中的并發操作 或者是同時工作中的線程數或者連接數 當并發性增加時 需要測量吞吐量是否下降 響應時間是否變長 如果是這樣 應用可能就無法處理峰值壓力
并發性的測量完全不同于響應時間和吞吐量 它不像是一個結果 而更像是設置基準測試的一種屬性 并發性測試通常不是為了測試應用能達到的并發度 而是為了測試應用在不同并發下的性能 當然 數據庫的并發性還是需要測量的 可以通過sy *** ench 指定 或者 個線程的測試 然后在測試期間記錄MySQL 數據庫的Threads_running 狀態值 在第 章將討論這個指標對容量規劃的影響
可擴展性
在系統的業務壓力可能發生變化的情況下 測試可擴展性就非常必要了 第 章將更進一步討論可擴展性的話題 簡單地說 可擴展性指的是 給系統增加一倍的工作 在理想情況下就能獲得兩倍的結果(即吞吐量增加一倍) 或者說 給系統增加一倍的資源(比如兩倍的CPU 數) 就可以獲得兩倍的吞吐量 當然 同時性能(響應時間)也必須在可以接受的范圍內 大多數系統是無法做到如此理想的線性擴展的 隨著壓力的變化 吞吐量和性能都可能越來越差
可擴展性指標對于容量規范非常有用 它可以提供其他測試無法提供的信息 來幫助發現應用的瓶頸 比如 如果系統是基于單個用戶的響應時間測試(這是一個很糟糕的測試策略)設計的 雖然測試的結果很好 但當并發度增加時 系統的性能有可能變得非常糟糕 而一個基于不斷增加用戶連接的情況下的響應時間測試則可以發現這個問題
一些任務 比如從細粒度數據創建匯總表的批量工作 需要的是周期性的快速響應時間 當然也可以測試這些任務純粹的響應時間 但要注意考慮這些任務之間的相互影響 批量工作可能導致相互之間有影響的查詢性能變差 反之亦然
歸根結底 應該測試那些對用戶來說最重要的指標 因此應該盡可能地去收集一些需求 比如 什么樣的響應時間是可以接受的 期待多少的并發性 等等 然后基于這些需求來設計基準測試 避免目光短淺地只關注部分指標 而忽略其他指標
返回目錄 高性能MySQL
編輯推薦
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
lishixinzhi/Article/program/MySQL/201311/29741
網站欄目:mysql指標怎么算 mysql計算數量
路徑分享:http://m.newbst.com/article30/doihspo.html
成都網站建設公司_創新互聯,為您提供云服務器、網頁設計公司、自適應網站、用戶體驗、網站收錄、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯