MySQL中的ibdata1怎么使用


本篇内容主要讲解“MySQL中的ibdata1怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中的ibdata1怎么使用”吧!系统表空间是InnoDB数据字典、双写缓冲区、更改缓冲区和撤消日志的存储区域。如果表是在系统表空间中创建的,而不是在每个表文件或通用表空间中创建,则它还可能包含表和索引数据。系统表空间可以有一个或多个数据文件。默认情况下,ibdata1会在数据目录中创建一个名为 的系统表空间数据文件。系统表空间数据文件的大小和数量由innodb_data_file_path启动选项定义。ibdata1即Innodb data1的缩写,是innodb引擎的表空间,用于存放以下内容:数据字典Data dictionary:只读的表,存储对象的相关信息,如占用空间,列的缺省值,约束信息,用户名,权限,审计信息等;双写缓冲区 Double write buffer:Innodb写入数据默认是16k/pages为一个单位写入,而磁盘是4k/page一个单位,为了防止写入一半,断电无法恢复数据的情况发生,引入了double writer buffer机制;double write buffer是一段连续空间,大小2M(128 page),数据写入的时候先写到doublewrite空间,然后再写入到磁盘,如果发生写入了一个page一半的时候断电,恢复后会自动从doublewrite中恢复;插入缓冲区INSERT BUFFER:针对辅助索引(非unique),插入数据的时候,先将插入的数据在buffer中根据辅助索引叶子节点的Page_no排序,而后按照Page_no分批次插入,提高性能;回滚日志rollback segment: 用于存储未提交事物,便于用户rollback,当commit后,数据即被标记无效;undo空间 用于存放undo 日志的;用于记录事物变更前的状态,如果未commit,其他session可以查看到变更前状免费云主机域名如果innodb_file_per_table=0,则Innodb的数据和索引也存储在ibdata中; (如果为1,则存储在表名相同的ibd和frm文件中); 如果表数据存储在ibdata中的话,那么删除表是不会释放空间;mysql 默认配置使用 innodb 引擎 innodb_file_per_table 默认是关闭的 , 因此表空间默认建立在 ibdata1 上1 、默认情况下 ibdata 存放 InnoDB 表( InnoDB 数据字典)元数据、 undo logs 、 the change buffer, and the doublewrite buffer2 、如果 innodb_file_per_table=0( 默认 =1) ,则 ibdata 也存放 InnoDB 表的实际数据,也就是 InnoDB 表建立后,不会再有单独的 tablename.ibd 文件 , 如果是 innodb_file_per_table=1, 存放 在新的表的 ibd 文件当中3 、 虽 然 InnoDB 表 元 数 据 通 过 information_schema.tables 来 读 取 , 但 是 实 际 上 information_schema 是一个虚拟数据库,并不物理存在,这些数据真正存放的地方就是 ibdata redo 是写在 ib_logfile 中的 , 不写在 ibdata 中。数据库中运行有长事务,记录了大量的UNDO信息,从而导致了ibdata1持续增长。可以通过show engine innodb status ;命令来查看。mysql中并未提供如何查看ibdata1中的存储内容信息。可以使用工具 innochecksum 来看。MySQL使用InnoDB引擎的时候,ibdata1这个文件会随着时间的增长,会变得越来越大,占据大量的磁盘空间。那么,ibdata1里保存了哪些东西,为什么会变得越来越大呢,让我们开看看ibdata1的构造。ibdata1是InnoDB的共有表空间,默认情况下会把表空间存放在一个文件ibdata1中,会造成这个文件越来越大。发现问题所在之后,解决方法就是,使用独享表空间,将表空间分别单独存放。MySQL开启独享表空间的参数是Innodb_file_per_table,会为每个Innodb表创建一个.ibd的文件。操作步骤下面讲一下具体的操作。1) 导出数据库中所有数据2) 删除数据库中数据3) 停止MySQL4) 删除ibdata1文件(移动到/tmp下)5) my.cnf设定6) 启动MySQL7) 导入数据8) 确认后记开启独享表空间后,并不是说就不需要ibdata1了,因为在ibdata1中还保存着下面这些数据。InnoDB表的元数据BufferUNDO日志到此,相信大家对“MySQL中的ibdata1怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: Android中如何通过自定义ViewGroup实现一个弹性滑动效果

本篇内免费云主机域名容主要讲解“Android中如何通过自定义ViewGroup实现一个弹性滑动效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中如何通过自定义ViewGroup实现一个弹性滑动效果…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/21 16:02
下一篇 05/21 16:03

相关推荐