zoukankan      html  css  js  c++  java
  • ibdata1文件--缩小mysql数据库的ibdata1文件

    摘要

    在MySQL数据库中,如果不指定innodb_file_per_table参数,单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件。
    mysql ibdata1存放数据,索引等,是MYSQL的最主要的数据。


    1 ibdata1文件简介

    在innodb引擎下边,如果不指定innodb_file_per_table参数,ibdata1文件实际存储所有数据库的表结构信息和实际数据。这个文件会随着数据量的增多变得很大。


    2  innodb_file_per_table  

    (1)在配置文件my.cnf中加上这个参数,会使每个表单独生成文件。这样不会生成很大的ibdata1文件。

    innodb_file_per_table=1 

    (2)关于innodb_file_per_table  参数

    对于MyISAM表引擎,这种引擎的数据库会分别创建三个文件:表结构、表索引、表数据空间。我们可以将某个数据库目录直接迁移到其他数据库也可以正常工作。然而当你使用InnoDB的时候,一切都变了。 
     
    InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。 
     
    在MySQL的配置文件[mysqld]部分,增加innodb_file_per_table参数。 
     
    可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。 
     
    独立表空间: 
     
    优点: 
     
    1.  每个表都有自已独立的表空间。 
    2.  每个表的数据和索引都会存在自已的表空间中。 
    3.  可以实现单表在不同的数据库中移动。 
    4.  空间可以回收(除drop table操作处,表空不能自已回收) 
     
    a)         Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter table TableName engine=innodb;回缩不用的空间。 
     
    b)         对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。 
     
    c)         对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。 
     
    缺点: 
    单表增加过大,如超过100个G。 
     
    结论: 
     
    共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整一 下:innodb_open_files 。 
     


    3 如何缩小ibdata1文件?

    1 备份数据库 
    备份全部数据库,执行命令mysqldump -q -uusername -pyourpassword --add-drop-table -all-databases > /all.sql
    做完此步后,停止数据库服务。 
     
    2,修改mysql配置文件 

    对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件      innodb_file_per_table 
     
    3,删除原数据文件 
     
    删除原来的ibdata1文件及日志文件ib_logfile*,删除data目录下的应用数据库文 件夹(mysql文件夹不要删) 
     
    4,还原数据库 
     
    启动数据库服务 
     
    mysql -uusername -pyourpassword < /all.sql 
     
    经过以上几步后,可以看到新的ibdata1文件就只有几十M了,数据及索引都变成了针对单个表的小ibd文件了,它们在相应数据库的文件夹下面。 


    转载:综合摘抄自网上。

  • 相关阅读:
    python中的编码问题
    CVPR2018 Tutorial 之 Visual Recognition and Beyond
    hdu 1376 Octal Fractions
    hdu 1329 Hanoi Tower Troubles Again!
    hdu 1309 Loansome Car Buyer
    hdu 1333 Smith Numbers
    hdu 1288 Hat's Tea
    hdu 1284 钱币兑换问题
    hdu 1275 两车追及或相遇问题
    hdu 1270 小希的数表
  • 原文地址:https://www.cnblogs.com/catkins/p/5270435.html
Copyright © 2011-2022 走看看