mysql delayed 延遲插入

DELAYED 的使用 
使用延遲插入操作 
DELAYED調節符應用於INSERT和REPLACE語句。當DELAYED插入操作到達的時候, 
服務器把數據行放入一個隊列中,並立即給客戶端返回一個狀態信息,這樣客戶 
端就可以在數據表被真正地插入記錄之前繼續進行操作了。如果讀取者從該數據 
表中讀取數據,隊列中的數據就會被保持着,直到沒有讀取者爲止。接着服務器 
開始插入延遲數據行(delayed-row)隊列中的數據行。在插入操作的同時,服務器 
還要檢查是否有新的讀取請求到達和等待。如果有,延遲數據行隊列就被掛起, 
允許讀取者繼續操作。當沒有讀取者的時候,服務器再次開始插入延遲的數據行。 
這個過程一直進行,直到隊列空了爲止。 
幾點要注意事項: 
· INSERT DELAYED應該僅用於指定值清單的INSERT語句。服務器忽略用於INSERT DELAYED...SELECT語句的DELAYED。 
· 服務器忽略用於INSERT DELAYED...ON DUPLICATE UPDATE語句的DELAYED。 
· 因爲在行被插入前,語句立刻返回,所以您不能使用LAST_INSERT_ID()來獲取AUTO_INCREMENT值。AUTO_INCREMENT值可能由語句生成。 
· 對於SELECT語句,DELAYED行不可見,直到這些行確實被插入了爲止。 
· DELAYED在從屬複製服務器中被忽略了,因爲DELAYED不會在從屬服務器中產生與主服務器不一樣的數據。 
注意,目前在隊列中的各行只保存在存儲器中,直到它們被插入到表中爲止。這意味着,如果您強行中止了mysqld(例如,使用kill -9) 
或者如果mysqld意外停止,則所有沒有被寫入磁盤的行都會丟失。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章