国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL切分查詢用法分析

2024-07-24 13:09:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了MySQL切分查詢用法,結(jié)合實(shí)例形式分析了通過(guò)do while語(yǔ)句進(jìn)行切分查詢的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
 

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

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

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

例如,每個(gè)月會(huì)運(yùn)行一次的語(yǔ)句,以清理三個(gè)月前的數(shù)據(jù):

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

 

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

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

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



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 琼结县| 旬邑县| 大荔县| 辽宁省| 社会| 盖州市| 册亨县| 屏南县| 上饶县| 镇雄县| 漠河县| 柳州市| 深州市| 廉江市| 中西区| 南通市| 古蔺县| 贺兰县| 盘山县| 策勒县| 墨玉县| 昌邑市| 青阳县| 孙吴县| 枝江市| 宁化县| 丹巴县| 铜山县| 温宿县| 中阳县| 东方市| 织金县| 武夷山市| 台北市| 雷州市| 毕节市| 山东| 绍兴县| 巩义市| 四会市| 桐梓县|