2012-07-04 82 views
0

無論何時我們正在觸發一個插入查詢,那個瞬間該特定表被鎖定一段時間。這個時間可以是一些微秒或幾秒,取決於需要插入數據庫的行。有沒有什麼辦法可以管理mysql的等待時間

我正在爲一所擁有超過一位用戶的大學開發應用程序。

我照顧它,因爲持續一段日子,我很googleing它,我得到了staticstics如下

10 simple read query = 1 simple write query 

的主要問題是notification,每當老師把一些更新,我通知學生只有那些學生會收到有興趣的通知。所以有可能發生一個更新可能有10000個以上的通知,這肯定需要3-5秒(waiting time)。所以所有的讀取都將在隊列中。

那麼有什麼辦法可以減少等待時間嗎?

+0

這對你有幫助嗎? ['睡'](http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_sleep) – diEcho

+0

我不認爲它會幫助我。 – KuKu

回答

1

也許你可以使用InnoDB而不是MyISAM,因爲前者具有行級鎖定功能,而後者在寫入時具有表級鎖定功能。如果您使用InnoDB作爲表引擎,則只有一行被鎖定,但其他任何內容仍可能被查看。

+0

所以這意味着如果我插入10000+行並在讀取請求之間來了,讀取請求將執行並插入將繼續..? – KuKu

+1

當然,爲什麼不呢?如果地方不同,巨大的網站不允許保存給用戶,因爲沒有其他用戶可以在一次保存期間訪問該網站。 – feeela

相關問題