关闭

“.ibd”文件和ibdata 文件

813人阅读 评论(0) 收藏 举报
分类:
      这两种文件都是存放Innodb 数据的文件,之所以有两种文件来存放Innodb 的数据(包
括索引),是因为Innodb 的数据存储方式能够通过配置来决定是使用共享表空间存放存储数
据,还是独享表空间存放存储数据。独享表空间存储方式使用“.ibd”文件来存放数据,且
每个表一个“.ibd”文件,文件存放在和MyISAM 数据相同的位置
如果选用共享存储表空
间来存放数据,则会使用ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配
置)ibdata 文件
。ibdata 文件可以通过innodb_data_home_dir 和innodb_data_file_path
两个参数共同配置组成, innodb_data_home_dir 配置数据存放的总目录, 而
innodb_data_file_path 配置每一个文件的名称。当然, 也可以不配置
innodb_data_home_dir 而直接在innodb_data_file_path 参数配置的时候使用绝对路径来
完成配置。innodb_data_file_path 中可以一次配置多个ibdata 文件。文件可以是指定大
小,也可以是自动扩展的,但是Innodb 限制了仅仅只有最后一个ibdata 文件能够配置成自
动扩展类型。当我们需要添加新的ibdata 文件的时候,只能添加在innodb_data_file_path
配置的最后,而且必须重启MySQL 才能完成ibdata 的添加工作。不过如果我们使用独享表
空间存储方式的话,就不会有这样的问题,但是如果要使用裸设备的话,每个表一个裸设备,
可能造成裸设备数量非常大,而且不太容易控制大小,实现比较困难,而共享表空间却不会
有这个问题,容易控制裸设备数量。我个人还是更倾向于使用独享表空间存储方式。当然,
两种方式各有利弊,看大家各自应用环境的侧重点在那里了。
上面仅仅介绍了两种最常用存储引擎的数据文件,此外其他各种存储引擎都有各自的数
据文件,读者朋友可以自行创建某个存储引擎的表做一个简单的测试,做更多的了解。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:197788次
    • 积分:5150
    • 等级:
    • 排名:第5573名
    • 原创:327篇
    • 转载:46篇
    • 译文:0篇
    • 评论:3条
    最新评论