电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Mysql臟頁flush及收縮表空間原理解析

瀏覽:4日期:2023-10-11 14:55:45

mysql臟頁

由于WAL機制,InnoDB在更新語句的時候,制作了寫日志這一個磁盤操作,就是redo log,在內存寫完redo log后,就返回給客戶端, 即更新成功。

把內存里的數據寫入磁盤的過程,術語就是flush,在flush之前,實際數據和數據庫中的數據是不一致的,因為在redo log基礎上更新了還未寫入,數據庫是老的,當內存數據頁跟磁盤數據頁內容不一致的時候,稱這個內存頁為臟頁,內存寫入后就一致了,稱為干凈頁,

如果mysql偶爾運行速度很慢,很可能是在刷臟頁。引發數據庫flush的過程

redo log滿了,系統停止所有更新操作,將checkpoint向前推進,騰出空間繼續寫。 系統內存不足,需要新的內存頁不夠用,就會淘汰一些數據頁,留給別的數據頁使用,如果淘汰的是臟頁,就會先寫到磁盤。 mysql空閑的時候。 正常關閉mysql的時候 在第一種情況下,redo log滿了,這種情況是innodb要避免的,因為整個系統都不能再更新了,這是不能接受的 第二種情況,內存滿了,要先寫到磁盤,innodb用緩沖池管理內存,有三種狀態 還沒有用的內存頁 用了并且是干凈頁 用了并且是臟頁(淘汰的時候需要寫入到磁盤)

所以我們有時使用數據庫會發現數據庫性能突然下降,可能就是在處理臟頁。

刷臟頁控制策略

Innodb_io_capacity參數,這個參數會告訴innodb你的磁盤io能力。(有公式計算) innodb刷盤主要兩個因素:臟頁比例和redo log的寫盤速度 innodb_max_derty_pages_pct是臟頁比例上限,默認是75%,調整好Innodb_io_capacity參數值,使臟頁比例不要超過75%收縮表空間

場景例子:數據庫占用空間太大,把最大的表刪掉了一半數據,表的大小還是沒有變化。

數據刪除流程

Mysql臟頁flush及收縮表空間原理解析

加入要刪掉R4,InnoDB引擎只會把R4這個記錄標記為刪除,如果之后再摻入一個ID在300-600之間的記錄時,會復用這個位置,但是磁盤文件的大小并不會縮小。

如果刪掉了一個數據頁上的所有記錄,這個數據頁就可以被復用。

注意:數據頁的復用跟記錄的復用是不同的。

比如R4這條記錄被刪除,如果插入一個ID是400的行,直接復用這個空間,但是如果插入ID是800的行,就不能復用這個位置了。 但是整個數據頁Page A上的所有記錄刪除之后,pageA標記為可復用,如果插入一條ID=50的記錄需要用新的數據頁的時候,PageA是可以背負用的。 如果我們用delete命令把整個表數據刪除,結果是所有的數據頁都會標記為可復用,但是在磁盤上,文件不會變小。

插入數據流程

如果數據按照索引順序插入的,索引是緊湊的,但是如果是隨機插入的,就會造成索引的數據頁分頁。

Mysql臟頁flush及收縮表空間原理解析

如果pageA已經滿了,在插入一行數據會怎樣?由于A滿了,在插入一個id是550的數據時,就會申請一個新的頁面pageB來保存數據,分裂完成后pageA的末尾就留下了空洞。

更新索引上的值也是刪除一個舊的值,再插入一個新值,也會造成空洞。

收縮空間

新建一個與表A相同結構的表B,按照主鍵ID遞增的順序,把數據一行一行的從A里讀出來再插入到表B中,表B中無空洞,數據頁的利用率也更高,如果我們把表B作為臨時表,數據從表A導入到B中的操作完成后,用B替換A,從效果上也起到了收縮A的作用。

Mysql臟頁flush及收縮表空間原理解析

在整個DDL過程中,表A不能有更新,所以這個DDL不是online的,在5.6之后的版本中,流程做了更改:

建立一個臨時文件,掃描A中的所有數據頁,

用數據頁中A的記錄生成B+樹,存儲在臨時文件中

將所有對A的操作記錄在一個日志文件中

臨時文件生成后,將日志文件的操作應用到臨時文件,得到一個邏輯數據上與表A相同的數據文件

用臨時文件替換表A的數據文件

圖示

Mysql臟頁flush及收縮表空間原理解析

可以看到,與圖3過程的不同之處在于,由于日志文件記錄和重放操作這個功能的存在,這個方案在重建表的過程中,允許對表A做增刪改操作。

使用alter table A engine=InnoDB命令來重建表。在MySQL 5.5版本之前,這個命令的執行流程跟我們前面描述的差不多,區別只是這個臨時表B不需要你自己創建,MySQL會自動完成轉存數據、交換表名、刪除舊表的操作。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 济南轻型钢结构/济南铁艺护栏/济南铁艺大门-济南燕翔铁艺制品有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | 求是网 - 思想建党 理论强党 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 苏州柯瑞德货架-仓库自动化改造解决方案 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 超声波反应釜【百科】-以马内利仪器| 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 |