2013-03-31 96 views
0

我正在運行一個8GB RAM,四核SSD SSD雲服務器。簡單的MySQL查詢16秒長

大多數數據庫查詢都很快,但根據New Relic的說法,一個查詢只更新一行的一列最多需要16秒。

我的查詢是:

UPDATE user SET ad=$currentAdSet WHERE ckey='$_COOKIE[ckey]' 

,我使用了mysql_query("") PHP函數來執行查詢。

user表有43000行左右,結構簡單。

爲什麼這個查詢需要這麼長時間?有任何想法嗎?

+0

它是一個循環內? – 2013-03-31 19:17:56

+0

「ckey」列中是否有索引? 'ckey'是一個索引嗎?' –

+0

是'索引嗎?' – 2013-03-31 19:18:46

回答

2

嘗試在ckey上添加索引並再次檢查時間。我會建議閱讀一些索引。

BTW,直接使用cookie的值可能會導致SQL注入

+0

它工作!謝謝:) –

2

你可以試試,看看是什麼使得它可以通過使用EXPLAIN這麼慢。然後,根據您看到的瓶頸,使用索引。

+1

肯定會記住未來的'EXPLAIN'! :) –

0

確保ckey被索引,如果不需要,ad未被索引。

第一將使記錄快速選擇,第二更快的更新

希望這有助於