disk 100%场景优化

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: disk 100%场景优化

开发者学堂课程【云数据库优化经典案例:disk 100%场景优化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/67/detail/1166


disk 100%场景优化


磁盘包含的三个部分

第九个为磁盘,磁盘包含的几个部分,第一个部分是数据,数据文件其实包括了数据和索引,Mysql 的表是索引和数据在一起,第二个是临时文件,第三个是日志文件。

图片3.png

1、数据空间

(1)采用optimize table收缩表空间;删除不必要的索引;

(2)使用tokudb压缩引擎;

数据文件索引和数据是在一起的,如果表里的索引非常多,创建了很多无效索引,就可能会把数据空间撑大,有两种极端情况,第一种是一个查询它可能有 where 条件里有五个字段的条件,它就按这五个条件单独建了个单面索引,可能这个时候针对两三个字段见一个组合索引就可以了,但是它建立了五个单面索引这是要注意的,这个时候要去删除不必要的索引;第二个是删除数据,Mysql 数据 与删除的 delete 是不会回收空间的,它只是作为一个逻辑删除 ,那这个时候要去做 optimize table 去回收空间,回收空间第一个要注意延迟,第二个要注意 IOPS 的使用。第二个就是可能日志性的也有,比如日志表,这个时候可以用压缩引擎,比如有一个用户他购买了一个 T,但是有800个 G 是存放日志表的,那这个日志表就可以用 tokudb 做一个压缩,可以压缩到100个 G 以内,所以采用适当的引擎可以节约空间。

2、日志空间问题

(1)减少大字段的使用

(2)使用truncate替代delete from;

下一个是日志空间,是binary logs 空间,第一个要减少大字段的使用,因为 Mysql 我们的 binary logs 采用的是 row 格式,比如说你做一个 delete 操作、插入操作、更新操作,主要是更新操作和删除操作它都会把大字段记入 binary logs 里,所以这个时候对表里的字段比如状态值做评分更新,那么这些大字段都会被带入 binary logs 里,进而会导致 binary logs 空间长的非常快;第二个是 delete,delete 时要产生很多binary logs 文件,如果我们用 delete from 去全面删除这个表,一定要用 truncate 去替换,因为 truncate 只有一条低调语句,如果 delete from 的话,比如全面删除一百万行数据,delete from 就是一百万行 binary logs ,那使用 truncate 的话就只有一行 truncate 句。

3、临时空间问题

(1)适当调大 sort_buffer_size;

(2)创建合适索引避免排序;

第三个是排序产生的临时文件,因为在排序时它会在 sort_buffer_size 里,如果对两个表整理后再去排序,这个结构就非常大,它就会超出 sort_buffer_size,就会产生临时文件,此时临时文件就会膨胀的非常大,进而导致适当空间涨的厉害,在这个时候就需要创建合适索引,规避排序,遇到过情况是一个T的空间,它用了七八百的临时空间也是需要注意的问题。

 

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
前端开发 Java API
【第49期】一文了解React动画
【第49期】一文了解React动画
454 0
|
网络安全 Apache PHP
[网络安全]upload-labs Pass-04 解题详析
[网络安全]upload-labs Pass-04 解题详析
327 0
|
搜索推荐 数据挖掘 语音技术
弹幕树洞项目功能新增篇
【9月更文挑战第25天】这是对弹幕树洞项目的功能改进建议,包括增强互动功能(如回复弹幕、点赞与踩),个性化设置(如主题选择、自定义字体颜色、隐私设置),拓展社交功能(如关注用户、分享功能、社区活动),数据分析与反馈(如情绪分析、热门话题、用户反馈)以及多媒体支持(如图片和表情、语音弹幕)。这些新增功能旨在使项目更丰富、有趣且实用,提升用户体验。
206 4
|
机器学习/深度学习 自然语言处理
【机器学习】如何进行中文命名实体识别?(面试回答)
中文命名实体识别的基本概念、分类、识别思想、实体标注方法以及常见的识别方法,包括基于规则、基于统计和基于深度学习的方法。
393 1
【机器学习】如何进行中文命名实体识别?(面试回答)
|
存储
短路时间常数法
短路时间常数法是一种用于分析电路的动态响应的方法,特别适用于分析电路的短路响应。它基于电路的短路时间常数,用于描述电路响应的快慢程度。
775 0
|
Linux API 数据安全/隐私保护
一文搞懂:【零基础】易盛9.0API入门二:登陆
一文搞懂:【零基础】易盛9.0API入门二:登陆
309 1
|
存储 数据采集 机器人
介绍大语言模型:langchain
**LangChain框架** 是一个开源工具,由Lang.AI开发,专为基于大语言模型(LLM)的应用程序设计。它简化了与LLM的交互,整合数据检索和功能模块,支持上下文感知和逻辑推理。框架包括**基础层**(Models、LLM、Index)、**能力层**(Chains、Memory、Tools)和**应用层**(Agent),提供模型集成、提示管理、内存系统、索引、链和代理等模块。LangChain的特点包括上下文感知、逻辑推理、预制链和组件,以及开发工具如LangSmith和LangServe。广泛应用在文档分析、聊天机器人、智能助手、代码生成、内容创作和数据科学等领域。
|
Java 文件存储
软件开发常用之SpringBoot文件上传和下载功能(上){fileName},利用hutool提供的依赖,拿到当前目录的路径,System.getProperty从变量获取路径 ,不存在就用mkdi
软件开发常用之SpringBoot文件上传和下载功能(上){fileName},利用hutool提供的依赖,拿到当前目录的路径,System.getProperty从变量获取路径 ,不存在就用mkdi
|
定位技术
ArcGIS手动分割矢量面要素从而划分为多个面部分的方式:Cut Polygons Tool
ArcGIS手动分割矢量面要素从而划分为多个面部分的方式:Cut Polygons Tool
600 1
|
中间件 Go
Golang Gin 框架之中间件(六)
Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。上一篇文章介绍了 Gin 的基本使用方式,今天我们详细看一看 Gin 在中间件方面的内容。
467 57