• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Mysql单文件存储删除数据文件容量不会减少的bug与解决方法

    MySQL的Bug之一:InnoDB ibdata1 never shrinks after data is removed

    问题描述

    当innodb引擎使用单个文件进行存储的时候,当对数据库中数据进行删除的时候,文件的大小并不会发生变化,意味着文件将会越来越大并且即使删除也没办法 让其释放磁盘的空间。

    验证过程

    创建一个测试使用的表,如下创建好t这样的一个表。

    创建简单的存储过程来批量的插入数据。

    查看开始前的文件的大小

    当批量插入接近十万的数据后

    然后进行删除操作

    占用磁盘空间并未减少

    解决方案

    两种方式:

    1. 先备份后删除然后进行导入

    mysqldump -uxxx -pxxx --all-databases > db.sql 
    service mysql stop 
    rm ibdata 
    rm ×log文件 
    service mysql start 
    mysql -uxxx -pxxx  db.sql 

    2. 把表设置为单表存储的形式,这样每个表中的数据单独存储,在删除数据的时候,会随着数据的删除而释放存储空间。

    set global innodb_file_per_table = on 

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

    您可能感兴趣的文章:
    • mysql 精简过程(删除一些文件)
    • linux下mysql自动备份数据库与自动删除临时文件
    • mysql备份脚本以及删除前5天的备份文件
    • php上传文件并存储到mysql数据库的方法
    • MySQL 删除数据库中重复数据方法小结
    • MYSQL删除表中的指定ID数据
    • MySQL数据库中删除重复记录的方法总结[推荐]
    • Mysql InnoDB删除数据后释放磁盘空间的方法
    上一篇:mysql模糊查询like与REGEXP的使用详细介绍
    下一篇:mysql 存储过程判断重复的不插入数据
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Mysql单文件存储删除数据文件容量不会减少的bug与解决方法 Mysql,单文件,单,文件,存储,