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实时生图绘板
相关文章
|
数据采集 存储 SQL
基于实时计算(flink)打造舆情分析平台——新华智云
新华智云是一家致力于通过大数据技术驱动媒体变革的公司,数芯是新华智云推出的实时舆情分析平台,旨在满足用户一系列舆情分析需求。包括:对事件、新闻、媒体、人物、地域、机构、行业,甚至关键词、热门话题等的抓取、识别、聚合、热度分析以及可视化展示等。
3349 0
基于实时计算(flink)打造舆情分析平台——新华智云
|
3天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
14天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1305 5
|
13天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1333 87
|
2天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
184 82
2025年阿里云域名备案流程(新手图文详细流程)