2011-09-13 101 views
0

我不知道爲什麼,但是MYSQL在cpu上給了很大的負載。 我必須每秒更新數據庫多次,並且用戶羣正在增長。MYSQL佔用100%的CPU。查詢緩慢

這是罰款在第一,但CPU負載每天增加,目前

下面是從日誌慢速查詢:

*Query_time: 4.182654 Lock_time: 0.000070 Rows_sent: 0 Rows_examined: 0 
SET timestamp=1315908025; 
UPDATE Stats SET Time = 1315908020 WHERE Domain = 'facebook.com';* 

爲什麼會這樣的查詢這麼慢? 慢速查詢是否需要更多CPU?

難道這是因爲我選擇了錯誤的行類型?

time: int (11), Domain VARCHAR (1000) 

統計表有13k行,並且在增長。

+1

什麼是表引擎和每秒鐘訪問表的次數? –

+1

請提供表格的DDL。 –

+0

DNS名稱限制爲253個字符;你可能會在那裏節省一點空間。 – MSalters

回答

2

緩慢查詢的最常見原因是缺少索引。 MySQL必須找到行WHERE Domain='facebook.com'。這是表掃描還是索引查找?

+0

13k表掃描應該仍然需要幾分之一秒,除非它每秒或更多掃描數百次。這很可能是上述專欄缺乏索引,但更重要的是,它似乎也是存儲引擎的錯誤配置。 –

+0

我不確定表掃描和索引查找有什麼區別。 – user775013

+0

表掃描基本上意味着MySQL必須依次查看每條記錄。索引查找意味着有一個有序列表可以用二叉樹方式進行搜索 - 速度要快得多。 – Jaydee