
我的查詢
./mysqlslap --user=root --concurrency=50 --iterations=1 --pass=toor -vv --create-schema=db --query="SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN ('1') AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 35, 6"
一些結果
Average number of seconds to run all queries: 68.904 seconds
Minimum number of seconds to run all queries: 68.904 seconds
Maximum number of seconds to run all queries: 68.904 seconds
Number of clients running queries: 50
Average number of queries per client: 1
平均負載峰值超過 32。
試驗機的規格如下:
- 4GB記憶體
- E6550@2.33GHz(2核心)
- 單SATA磁碟
- Debian Lenny + Apache + PHP + MySQL
可以讀取MySQL配置在這裡。有人對我如何調整以提高效能有建議嗎?謝謝。
答案1
- 安裝 w3tc 或 wp-super-cache
- 減少貼文/標籤的數量(請記住,wordpress 將貼文的修訂儲存在wp_posts 表中,因此,如果有人喜歡讓自己保持登入狀態並且自動保存每5 分鐘運行一次,您可以在那裡獲得相當多的多餘修訂)
- 替換 WordPress
- 獲得更快的磁碟
雖然我根據直覺不同意配置中的一些可調參數,http://blog.mysqltuner.com/包含一個可以運行的腳本,該腳本為您提供配置設定的輸入。您需要讓 mysql 運行 48 小時以上,以便它提供最佳建議。
- 表定義緩存
- thread_concurrency(在四核心上,我通常在 6 上運行)
- join_buffer_size(您將其列為 join_buffer ,這可能不正確,請查看顯示狀態/顯示變數以確保您的配置值按您的預期生效)
如果您沒有在與資料庫相同的分割區上執行電子郵件,請考慮使用 noatime、nodiratime 掛載檔案系統。檢查檔案系統上的其他可調設定。