程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL切分查詢用法剖析

MySQL切分查詢用法剖析

編輯:MySQL綜合教程

MySQL切分查詢用法剖析。本站提示廣大學習愛好者:(MySQL切分查詢用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL切分查詢用法剖析正文


本文實例講述了MySQL切分查詢用法。分享給年夜家供年夜家參考,詳細以下:

關於年夜查詢有時須要‘分而治之',將年夜查詢切分為小查詢: 每一個查詢功效完整一樣,但只完成本來的一小部門,每次查詢只前往一小部門成果集。

刪除舊的數據就是一個很好地例子。按期清算舊數據時,假如一條sql觸及了年夜量的數據時,能夠會一次性鎖住多個表或行,消耗了年夜量的體系資本,卻壅塞了其他許多小的但主要的查詢。將一個年夜得DELETE語句切分為較小的查詢時,可以盡可能削減影響msql的機能,同時削減mysql復制作成的延遲。

例如,每一個月會運轉一次的語句,以清算三個月前的數據:
mysql> DELETE FROM messages WHERE dt<DATE_SUB(NOW(), INTERVAL 3 MONTH);

可以用以下的辦法來完成如許的義務:

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

一次刪除一萬行數據是個比擬高效且對辦事器影響較小的做法。同時假如每次刪除數據時暫停一會,可以將辦事器本來的一次性壓力疏散到一個較長的時光段中,從而削減刪除時鎖表鎖行的時光。

願望本文所述對年夜家MySQL數據庫計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved