MySQL切分查詢用法分析
本文實例講述了MySQL切分查詢用法。分享給大家供大家參考,具體如下:
對于大查詢有時需要‘分而治之',將大查詢切分為小查詢: 每個查詢功能完全一樣,但只完成原來的一小部分,每次查詢只返回一小部分結果集。
刪除舊的數(shù)據(jù)就是一個很好地例子。定期清理舊數(shù)據(jù)時,如果一條sql涉及了大量的數(shù)據(jù)時,可能會一次性鎖住多個表或行,耗費了大量的系統(tǒng)資源,卻阻塞了其他很多小的但重要的查詢。將一個大得DELETE語句切分為較小的查詢時,可以盡量減少影響msql的性能,同時減少mysql復制造成的延遲。
例如,每個月會運行一次的語句,以清理三個月前的數(shù)據(jù):
可以用以下的方法來完成這樣的任務:
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ù)是個比較高效且對服務器影響較小的做法。同時如果每次刪除數(shù)據(jù)時暫停一會,可以將服務器原本的一次性壓力分散到一個較長的時間段中,從而減少刪除時鎖表鎖行的時間。
更多關于MySQL相關內(nèi)容感興趣的讀者可查看本站專題:《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。
相關文章
MySQL INSERT INTO SELECT時自增Id不連續(xù)問題及解決
這篇文章主要介紹了INSERT INTO SELECT時自增Id不連續(xù)問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
MySQL Installer 8.0.21安裝教程圖文詳解
這篇文章主要介紹了MySQL Installer 8.0.21安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Linux系統(tǒng)下修改mysql字符集為UTF8步驟
大家好,本篇文章主要分享的是Linux系統(tǒng)下修改mysql字符集為UTF8步驟,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下吧,方便下次瀏覽2021-12-12
SQL Server 完整備份遇到的一個不常見的錯誤及解決方法
這篇文章給大家介紹了SQL Server 完整備份遇到的一個不常見的錯誤及解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-05-05
MySql報錯:Duplicate entry ‘10‘ for key&nbs
經(jīng)常遇到這個問題,今天我把這個問題記錄下來,以后如果有其他人遇到相同的問題,不至于困惑,在操作數(shù)據(jù)庫的時候,經(jīng)常會出現(xiàn)Duplicate entry ‘10’ for key 'PRIMARY’這樣的報錯,本文將給大家講講如何解決這個問題,需要的朋友可以參考下2023-10-10

