占用CPU過高,可以做如下考慮:
1)一般來講,排除高并發的因素,還是要找到導致你CPU過高的哪幾條在執行的SQL,show processlist陳述句,查找負荷最重的SQL陳述句,優化該SQL,比如適當建立某欄位的索引;
2)打開慢查詢日志,將那些執行時間過長且占用資源過多的SQL拿來進行explain分析,導致CPU過高,多數是GroupBy、OrderBy排序問題所導致,然后慢慢進行優化改進。比如優化insert陳述句、優化group by陳述句、優化order by陳述句、優化join陳述句等等;
怎么優化資料庫_快速靈活_安全穩定_可用性高
3)考慮定時優化檔案及索引;
4)定期分析表,使用optimize table;
5)優化資料庫物件;
6)考慮是否是鎖問題;
7)調整一些MySQL Server引數,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
8)如果資料量過大,可以考慮使用MySQL集群或者搭建高可用環境。
9)可能由于記憶體latch(泄露)導致資料庫CPU高
10)在多用戶高并發的情況下,任何系統都會hold不住的,所以,使用快取是必須的,使用memcached或者redis快取都可以;
11)看看tmp_table_size大小是否偏小,如果允許,適當的增大一點;
12)如果max_heap_table_size配置的過小,增大一點;
13)mysql的sql陳述句睡眠連接超時時間設定問題(wait_timeout)
14)使用show processlist查看mysql連接數,看看是否超過了mysql設定的連接數
uj5u.com熱心網友回復:
謝謝分享,
不過, 這不是 sqlserver 的知識吧, 建議發到 mysql 版塊。
uj5u.com熱心網友回復:
同意樓上的。uj5u.com熱心網友回復:
好的,謝謝。下次改進
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/101973.html
標籤:非技術版
上一篇:sqlyog連接1045錯誤mysql8.0以上版本
下一篇:SQL觸發器
