MySQL空间清理的几种具体方法
参考链接: Mysql空间清理,最硬核
1.查看文件磁盘占用
1.1 查看磁盘空间占用
df -lh
1.2 查看目录空间占用
找到mysql的数据目录,可以看到binlog文件占用空间较多
du -sh ./*
2.Binlog日志清理
2.1.定时自动清理Binlog日志
show variables like '%expire_logs_days%'; --mysql 5.7
show variables like '%binlog_expire_logs_seconds%'; --mysql8.0# mysql5.7
# 这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:
set global expire_logs_days=10;# mysql8.0
# mysql8开始 expire_logs_days 废弃 启用binlog_expire_logs_seconds设置binlog自动清除日志时间
# 保存时间 以秒为单位;默认2592000 30天
# 14400 4小时;86400 1天;259200 3天;
set global binlog_expire_logs_seconds=86400;
2.2 手动删除Binlog日志
# 第一步:登陆进入mysql,并使用 show binary logs; 查看日志文件,可以看到与之前服务器内的文件一致。
show binary logs;
# 查看正在使用的日志文件:show master status;
show master status;
# 当前正在使用的日志文件是binlog.000079,那么删除日志文件的时候应该排除掉该文件。删除日志文件的命令如下
purge binary logs to 'binlog.000079';
# 删除除binlog.000079以外的日志文件,也可以指定其他文件名,例如binlog.000001。删除后就能释放大部分空间。
2.3.Slow日志清理
如何开启mysql慢查询日志?
# 步骤一 查看slow日志模式
show variables like 'log_output%';
# 步骤二 查看Slow日志文件位置
show variables like '%slow%';
# 步骤三 清空Slow日志
echo "">/var/lib/docker/overlay2/208f8ec99ffb5b103e7593fc54fcce1920faa6b57fb0056c3ffe9d8947031b1f/merged/usr/mysql/data
m/860a723cdf9b-slow.log #因为我是docker启动的mysql所以目录很长
2.3.Error日志清理
mysql开启错误日志的方法
MySQL8.0错误日志Error log介绍
#步骤一 查看error日志位置
show variables like 'log_error';
#步骤二 查看error日志大小
ll -h ./mysql_error.log
#步骤三 清空error日志
echo "">./mysql_error.log
3.表清理
- 大表,指单个数据文件磁盘占用大于100G,或者单个表数据记录量大于1亿。
3.1.查看表占空间和记录数
#查看所有数据库各表容量大小
select
table_schema as '数据库',
table_name as '表名',
table_rows as '记录数',
truncate(data_length/1024/1024, 2) as '数据容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
-- where table_schema='test'
order by data_length desc, index_length desc;
3.1.常规表数据清理
#常规表指没达到大表标准的。
#Delete语法:
Delete from table_name [ where condition];
#Delete 只删除符合条件的数据,不会减少表所占空间。
#Delete 大量数据后,会存在碎片,需要整理回收碎片空间
optimize table table.name; #或者
alter table table.name engine='innodb'; #(会锁表,注意在业务低谷期执行)#Truncate语法:
Truncate table table_name;
#Truncate 删除全表数据,回收所占表空间。#Drop语法:
Drop table table_name;
#Drop 删除全表数据和表结构,回收所占表空间。
MySQL空间清理的几种具体方法相关推荐
- win8 C盘空间不足的几种解决方法
win8 C盘空间不足的几种解决方法 参考文章: (1)win8 C盘空间不足的几种解决方法 (2)https://www.cnblogs.com/sun8134/archive/2013/03/27 ...
- C语言malloc申请空间函数的两种返回方法
测试ok,代码如下: /********************************************* 功能:malloc申请空间函数的两种返回方法* 作者:lml 时间:2020年4月1 ...
- 硬盘在计算机上没显示内存不足,打开Excel2016提示内存或磁盘空间不足的两种解决方法...
在Excel2016或者Excel2013中打开新建的空白文档提示:内存或磁盘空间不足,Microsoft Excel无法再次打开或保存任何文档. 要想获得更多的可用内存,请关闭不再使用的工作簿或程序 ...
- office打开服务器文件提示内存不足,Excel2016打开文档时提示内存或磁盘空间不足的两种解决方法...
有时候,在Excel2016或者Excel2013中打开新建的空白文档提示:内存或磁盘空间不足,Microsoft Excel无法再次打开或保存任何文档.要想获得更多的可用内存,请关闭不再使用的工作簿 ...
- Mysql空间清理,最硬核
作者:IT邦德 中国DBA联盟(ACDU)成员,目前从事DBA及程序编程 (Web\java\Python)工作,主要服务于生产制造 现拥有 Oracle 11g OCP/OCM. Mysql.Oce ...
- 阿里云mysql空间清理
今天收到阿里云磁盘告警通知,查看了一个100G的空间已达到80G的使用量,如果决定删除2018年1月1日之前的数据,可delete后,再去查看发现磁盘可用空间并没有减少,还飞速的上涨,这可把我急坏了, ...
- django框架使用mysql报错,及两种解决方法
1.django框架 settings.py文件中部分代码: DATABASES = {# 'default': {# 'ENGINE': 'django.db.backends.sqlite3',# ...
- android 下拉列表动画,android下拉列表空间Spinner的三种使用方法
1.资源文件生成 android:id="@+id/spner" android:prompt="@string/city_prompt" android:la ...
- mysql 时间查询_两种常用MySql查询时间段的方法
MySql查询时间段的方法很多,下面就为您介绍几种最常用的MySql查询时间段方法,如果您在MySql查询时间段方面遇到过问题,不妨一看. MySql的时间字段有date.time.datetime. ...
最新文章
- [Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE
- Symbian的内存管理机制
- SharePoint Serivce 安装时的一个问题
- 2.2.4 数据的的存储和排列
- aop springboot 传入参数_Springboot添加AOP打印请求参数
- 项目积压需求项目计划_需求变更频繁,项目经理如何做好需求管理?
- 蚂蚁金服资深技术专家经国:云原生时代微服务的高可用架构设计
- Kafka基础系列第1讲:Kafka的诞生背景及应用
- vue 连接地址下载 PDF
- 语义slam_【语义SLAM】MIT 新开源语义VIOSLAM框架 kimera
- 解析数论导轮中的数学实验(python)
- 7-6 输出上三角队形
- 紫猫安卓按键之其他命令
- AutoJs7、8版本快速接通vscode进行调试脚本
- qgjsfagafgpjqip
- MySQL数据库——锁机制
- XSS安全漏洞修复解决方案
- LINUX杀掉指定进程 脚本 守护进程
- linux hudson svn,Hudson Maven SVN快速搭建持续集成环境
- 弱类型语言为何不堪大用