MySQL 查詢執行時間過長

MySQL 查詢執行時間過長

我有一個資料庫表,有 300,000 行,大小為 113.7 MB。我的資料庫運行在具有 8 核和 8GB RAM 的 Ubuntu 13.10 上。現在的情況是,MySQL 伺服器平均佔用了 750% 的 CPU。和 6.5 %MEM(透過top在 CLI 中運行獲得的結果)。另請注意,它與 Apache2 Web 伺服器運行在同一台伺服器上。

這是我在 Mem 線上得到的訊息: Mem: 8141292k total, 6938244k used, 1203048k free, 211396k buffers

當我跑步時:show processlist;我得到這樣的回報:

2098812 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Horns/thumbs/Halloween 2013 Horns (Original).png'
2098813 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Witch Hat/thumbs/Halloween 2013 Witch Hat (Origina
2098814 | admin | localhost       | phpb | Query   |   12 | Sending data | SELECT * FROM items WHERE thumb = 'Halloween 2013 Blouse/thumbs/Halloween 2013 Blouse (Original).png
2098818 | admin | localhost       | phpb | Query   |   11 | Sending data | SELECT * FROM items WHERE parent = 210162 OR auto = 210162    

有些查詢的執行時間超過 10 秒,這不是清單的頂部,而是中間的某個位置,只是為了讓您了解此清單中堆積了多少查詢。我覺得這可能跟我的查詢現金配置有關。以下是運行時顯示的配置SHOW STATUS LIKE 'Qc%';

+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 434      |
| Qcache_free_memory      | 2037880  |
| Qcache_hits             | 62580686 |
| Qcache_inserts          | 10865474 |
| Qcache_lowmem_prunes    | 4157011  |
| Qcache_not_cached       | 3140518  |
| Qcache_queries_in_cache | 1260     |
| Qcache_total_blocks     | 4440     |
+-------------------------+----------+

我發現好像Qcache_lowmem_prunes有點高,這正常嗎?

我一直在 StackOverflow 上搜索,但找不到任何可以解決我的問題的東西。任何有關此問題的幫助將不勝感激,謝謝!

答案1

您的拇指列、父列或自動列上有索引嗎?作為一項規則咳咳拇指,您應該在 where 子句中的每列或每組列上有一個索引。

相關內容