您好,登錄后才能下訂單哦!
這篇文章主要講解了“MYSQL state狀態舉例分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MYSQL state狀態舉例分析”吧!
背景:機房遷移,原報表系統在新的db上出報表非常慢
1.查看連接狀態
mysql> show full processlist;
+--------+-----------------+---------------------+----------+---------+---------+-----------------------------------------------------------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+--------+-----------------+---------------------+----------+---------+---------+-----------------------------------------------------------------------------+-----------------------+
| 1 | event_scheduler | localhost | NULL | Daemon | 2247681 | Waiting on empty queue | NULL |
| 121456 | system user | | NULL | Connect | 784383 | Waiting for master to send event | NULL |
| 121457 | system user | | NULL | Connect | 1 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL |
| 121468 | ecejadmin | 192.168.2.104:42497 | ecejdbv3 | converting HEAP to MyISAM | 1 | | 復雜sql |
| 121469 | ecejadmin | 192.168.2.10:54423 | ecejdbv3 | converting HEAP to MyISAM | 2 | | 復雜sql |
| 121470 | ecejadmin | 192.168.2.12:9386 | ecejdbv3 | converting HEAP to MyISAM | 1 | | 復雜sql |
| 121471 | ecejadmin | 192.168.2.104:63937 | ecejdbv3 | converting HEAP to MyISAM | 2 | | 復雜sql
報表sql狀態如上
2.處理過程
1.在終端里set profiling=1;
2.輸入要調整的SQL語句,比如復雜sql;
3.輸入show profiles;看看剛才那條語句的ID 用于后面分析
4.show profile for query 2;
5.show profile block io,cpu for query 2;
6.show profile cpu,block io,memory,swaps,context switches,source for query 5;
7.通過上面的一些查詢 大體可以看出這條SQL語句執行的時候哪些地方占用的時間太大了。這次測試看到的是Copying to tmp table on disk和converting HEAP to MyISAM占有的時間太多。網上查了一下發現可以修改一下tmp_table_size和max_heap_table_size兩個參數來調整,使得大數據量的查詢時不用將結果集拷貝到物理磁盤。這樣時間就爭取過來了
感謝各位的閱讀,以上就是“MYSQL state狀態舉例分析”的內容了,經過本文的學習后,相信大家對MYSQL state狀態舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。