mysql ibdata1
- ibdata1是什么?
Mysql 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中的话,那么删除表是不会释放空间;
ibdata 路径和大小设置:
mysql> show variables like 'innodb_data_%';
+-----------------------+--------------------------------------------+
| Variable_name | Value |
+-----------------------+--------------------------------------------+
| innodb_data_file_path | ibdata1:76M;ibdata2:10M:autoextend:max:50M |
| innodb_data_home_dir | /export/data/mysql |
+-----------------------+--------------------------------------------+
rows in set (0.00 sec)
ibdata1:76M;ibdata2:10M:autoextend:max:50M含义是:生成2个表空间文件,第一个名字ibdata1,76M大小,第二个ibdata2,10M大小,当第一个达到最大值的时候,开始存储如第二个表空间,切第二个表空间可以自动增长,每次增长8M,增长的上限是50M;
- 为什么ibdata1增长非常快速?
因为里面有UNDO LOG,尤其是如果你的DB有大量写入的情况下,UNDO LOG会格外地多;
- 如何查看ibdata1?
- 有什么方法可以回收空间?
mysql ibdata1的更多相关文章
- python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1
mylib.py #encoding=utf-8 import os import include from include import * TABLESPACE_NAME='D:\\mysql_d ...
- [转]MySql ibdata1文件太大如何缩小
From : http://blog.chinaunix.net/uid-24373487-id-4223322.html 原文地址:MySql ibdata1文件太大如何缩小 作者:emailwht ...
- Mysql ibdata1简述
What is stored in ibdata1? 当启用innodb_file_per_table时,表存储在它们自己的表空间中,但共享表空间仍用于存储其他InnoDB的内部数据: 数据字典也就是 ...
- MySQL ibdata1文件迁移
目的:主机系统/var目录快满了,经查询最大的文件是mysql的ibdata1文件,有17G大小,故需要迁移这个文件到其他目录下,以释放/var目录空间. 1.先备份下数据库是个好习惯 # mysql ...
- MySQL ibdata1撑爆占满磁盘空间
MySQL主从由于ibdata1占满磁盘空间-->主从失效 因为设置了innodb_file_per_table = 1,ibdata1依旧撑爆占满磁盘空间 主从断的时候,IO线程在连接,SQL ...
- mysql ibdata1损坏
机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...
- mysql:ibdata1和mysql-bin log管理
MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空:truncate table xxx;然后o ...
- mysql 误删除ibdata1之后如何恢复
mysql 误删除ibdata1之后如何恢复 如果误删除了在线服务器中mysql innodb相关的数据文件ibdata1以及日志文件 ib_logfile*,应该怎样恢复呢? 这时候应该一身冷汗了吧 ...
- ibdata1文件--缩小mysql数据库的ibdata1文件
摘要 在MySQL数据库中,如果不指定innodb_file_per_table参数,单独存在每个表的数据,MySQL的数据都会存放在ibdata1文件. mysql ibdata1存放数据,索引等, ...
随机推荐
- laravel数据库迁移 和 路由防攻击
命令:php artisan migrate 防攻击:
- laravel orwhere的使用
- 前端页面调用Spring boot接口发生的跨域问题
最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...
- H5 audio 通过canplaythrough预加载音乐
1.背景 微信里做H5活动页面,对音乐使用autoplay, android没问题,IOS半天播不出来,因此考虑对音乐进行预加载(不是preload) <!DOCTYPE html> &l ...
- ﺑﯘﻟﺒﯘﻟﻼﺭ--思恋--IPA--维吾尔语
很美的维语歌曲, 迪里拜尔将之唱得十分动人心弦.
- Linux中修改环境变量及生效方法(永久、临时)环境变量查看
参考link:https://blog.csdn.net/u011630575/article/details/49839893 在项目中有一次帮忙组里搭环境时遇见了这部分的相关操作,记录一下.
- 指导手册02:伪分布式安装Hadoop(ubuntuLinux)
指导手册02:伪分布式安装Hadoop(ubuntuLinux) Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...
- javascript 跨域请求详细分析(终极跨域解决办法)
自从我接触前端以来,接手的项目里面很大部分都是前后端分离的,后端只提供接口,前端根据后端接口渲染出实际页面.个人觉得这是一个挺好的模式,前后端各自负责各自的模块,分工明确,而且也给前端更大的发挥空间. ...
- 学习HashMap随笔(更新中)
1.先来一个HashMap和HashTable的区别: HashMap线程不安全,键值可以为空 HashTable线程安全,键值不可以为空 2.hashmap我理解的是把数组存储和链表存储相结合了 具 ...
- Reactor
Flux和Mono Flux和Mono是Reactor中的两个基本概念.Flux表示的是包含0到N个元素的异步序列.在该序列中可以包含三种不同类型的消息通知:正常的包含元素的消息,序列结束的消息和序列 ...