首页 > 代码

InnoDB删除数据后释放磁盘空间的方法

最近发现mysql里的一个数据文件竟然高达150G,当时就懵了,

经过查文档发现原来,所有信息都存在这一个文件里,访问速度慢就不用说了,关键是将数据删除了,磁盘空间不释放,文件大小,不断的累计,这个就要命了,也就是说这是一个无底洞,迟早会把你的磁盘的空间给弄没,所以在测试服务器做了测试,也就是让 ibdata1 瘦身

# 在操作之前建议先将数据库设置为只读,防止数据出错
innodb_force_recovery = 4
# 先备份数据库:
mysqldump -u root -p –quick –force –all-databases > ALLmysqldata.sql
# 停止数据库
service mysqld stop
# 删除这些大文件
rm /usr/local/mysql/var/ibdata1
rm /usr/local/mysql/var/ib_logfile*
#配置my.cnf
innodb_file_per_table=1
#对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件
# 手动删除除Mysql之外所有数据库文件夹,然后启动数据库
service mysqld start
# 还原数据
mysql -u root -p < ALLmysqldata.sql


ibtmp1文件过大
mysql设置:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:3G
也可以定期重启,自动消失


mysql bin.00000_多种方法关闭并清除MySQL日志
# mysql -u root -p
mysql -u root -p
reset master;
(注意有;)


  • 服务器上mysql数据库很多,某个库把整台服务器拉爆了,如何定位找到罪魁?
  • 服务器上mysql数据库很多,某个数据库把整台服务器拉爆了,如何定位找到罪魁? 先在 MySQL 里把“正在烧 […]

  • mysql区间泛内容批量替换语句,且限定ID范围
  • 要求:要批量把文章id where id >= 587606 and id

  • mysql批量删除所有文章某区间内不同的内容
  • 【批量删除所有文章某区间内容】 例:某mysql数据内有几十万条数据,删除所有 <p class=&qu […]

  • mysql语句请尽量不使用ORDER BY RAND()
  • 不使用ORDER BY RAND() select id from `dynamic` order by ra […]

  • 批量删除wordpress内容,按标题内容字段字段长短
  • 批量删除文章,按标题内容字段字段长短, DELETE FROM wp_posts where length(p […]

  • 批量删除wordpress所有内容页里某个字符段前后的内容
  • 举个栗子一: 批量删除某个内容前的所有内容 例:删除表wp_posts 字段post_content 内容里所 […]