1、看機器配置,指三大件:cpu、內存、硬盤
2、看mysql配置參數
3、查系mysql行狀態,可以用mysqlreport工具來查看
4、查看mysql的慢查詢
依次解決了以上問題之後,再來查找程序方面的問題
my.cnf緩存優化
在 my.cnf 中添加/修改以下選項:
#取消文件系統的外部鎖
skip-locking
#不進行域名反解析,注意由此帶來的權限/授權問題
skip-name-resolve
#索引緩存,根據內存大小而定,如果是獨立的db服務器,可以設置高達80%的內存總量
key_buffer = 512M
#連接排隊列表總數
back_log = 200
max_allowed_packet = 2M
#打開表緩存總數,可以避免頻繁的打開數據表產生的開銷
table_cache = 512
#每個線程排序所需的緩沖
sort_buffer_size = 4M
#每個線程讀取索引所需的緩沖
read_buffer_size = 4M
#MyISAM表發生變化時重新排序所需的緩沖
myisam_sort_buffer_size = 64M
#緩存可重用的線程數
thread_cache = 128
#查詢結果緩存
query_cache_size = 128M
#設置超時時間,能避免長連接
set-variable = wait_timeout=60
#最大並發線程數,cpu數量*2
thread_concurrency = 4
#記錄慢查詢,然後對慢查詢一一優化
log-slow-queries = slow.log
long_query_time = 1
#關閉不需要的表類型,如果你需要,就不要加上這個
skip-innodb
skip-bdb