欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL切分查詢用法分析

 更新時間:2016年04月19日 11:41:05   作者:mo_guang  
這篇文章主要介紹了MySQL切分查詢用法,結(jié)合實例形式分析了通過do while語句進行切分查詢的具體實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了MySQL切分查詢用法。分享給大家供大家參考,具體如下:

對于大查詢有時需要‘分而治之',將大查詢切分為小查詢: 每個查詢功能完全一樣,但只完成原來的一小部分,每次查詢只返回一小部分結(jié)果集。

刪除舊的數(shù)據(jù)就是一個很好地例子。定期清理舊數(shù)據(jù)時,如果一條sql涉及了大量的數(shù)據(jù)時,可能會一次性鎖住多個表或行,耗費了大量的系統(tǒng)資源,卻阻塞了其他很多小的但重要的查詢。將一個大得DELETE語句切分為較小的查詢時,可以盡量減少影響msql的性能,同時減少mysql復制造成的延遲。

例如,每個月會運行一次的語句,以清理三個月前的數(shù)據(jù):

復制代碼 代碼如下:
mysql> DELETE FROM messages WHERE dt<DATE_SUB(NOW(), INTERVAL 3 MONTH);

可以用以下的方法來完成這樣的任務(wù):

rows_affected = 0
do {
   rows_affected = do_query("DELETE FROM messages WHERE dt<DATE_SUB(NOW(), INTERVAL 3 MONTH) LIMIT 10000")
}while rows_affected>0

一次刪除一萬行數(shù)據(jù)是個比較高效且對服務(wù)器影響較小的做法。同時如果每次刪除數(shù)據(jù)時暫停一會,可以將服務(wù)器原本的一次性壓力分散到一個較長的時間段中,從而減少刪除時鎖表鎖行的時間。

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

相關(guān)文章

最新評論