Innodb表空间
Innodb有两种管理表空间的方法
独立表空间:每一张表都会生成独立的文件来进行存储,每一张表都有一个.frm表描述文件,和一个.ibd文件。其中ibd文件包括了单独一个表的数据内容和索引内容。
共享表空间:某一个数据库的所有表的数据和索引文件都放在一个文件下,默认的文件是.ibdata1文件,初始值是10M,默认是存放在数据文件的根目录下(mysql/var)。
在性能和运维上独立表空间比共享的表空间有很多优势
共享表空间
优点:
表空间可以分成多个文件存放到各个磁盘,所以表也就可以分成多个文件存放在磁盘上,表的大小不受磁盘大小的限制(很多文档描述有点问题)。
数据和文件放在一起方便管理
缺点:
多个表及索引在表空间中混合存储,这样对于一个表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计分析,日值系统这类应用最不适合用共享表空间。
共享表空间分配后不能回缩
进行数据库的冷备很慢,mysqldump是一个好的处理方式
独立空间
优点:
- 每个表都有自已独立的表空间。
- 每个表的数据和索引都会存在自已的表空间中。
- 可以实现单表在不同的数据库中移动。
- 空间可以回收
缺点:
单表增加过大,响应也是较慢,可以使用分区表
单表增加过大,当单表占用空间过大时,存储空间不足,只能从操作系统层面思考解决方法
共享表空间和独立表空间之间的转换
1.查看当前表空间情况:
show variables like '%per_table';

ON代表独立表空间管理,OFF代表共享表空间管理;
2.修改数据库的表空间管理方式
修改配置文件 ,在/etc/my.cnf文件中设置
innodb_file_per_table=1 为使用独占表空间
innodb_file_per_table=0 为使用共享表空间
重启mysql

3.共享表空间转化为独立表空间的方法
(1)需要设置innodb_file_per_table=1
(2)单个表
alter table table_name engine=innodb;
很多表
先把数据库导出,然后删除数据再进行导入操作,该操作可以用mysqldump进行操作
总结:
经过以上操作便完成数据库的存储空间的转换
当数据量很小的时候建议使用共享表空间的管理方式。数据量很大的时候建议使用独立表空间的管理方式
Innodb表空间的更多相关文章
- Innodb 表空间传输迁移数据
在mysql5.5之前,mysql实例中innodb引擎表的迁移是个头疼的问题,要么使用mysqldump导出,要么使用物理备份的方法,但是在mysql5.6之后的版本中,可以使用一个新特性,方便地迁 ...
- MySQL Innodb表空间不足的处理方法
官方给出的解决方案: 添加和删除 InnoDB 数据和日志文件 这一节描述在InnoDB表空间耗尽空间之时,或者你想要改变日志文件大小之时,你可以做的一些事情. 最简单的,增加InnoDB表空间大小的 ...
- 10. InnoDB表空间加密
10. InnoDB表空间加密 InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密. 详细信息见官方文档
- ibd2sdi — InnoDB表空间SDI提取实用程序
参考mysql8.0官方文档 https://dev.mysql.com/doc/refman/8.0/en/ibd2sdi.html ibd2sdi是一个实用程序,用于从表空间文件中提取 序列化的字 ...
- MySQL InnoDB表空间加密
从 MySQL5.7.11开始,MySQL对InnoDB支持存储在单独表空间中的表的数据加密 .此功能为物理表空间数据文件提供静态加密.该加密是在引擎内部数据页级别的加密手段,在数据页写入文件系统时加 ...
- Innodb 表空间卸载、迁移、装载
从MySQL的Innodb特性中我们知道,Inndob的表空间有共享和独享的特点,如果是共享的.则默认会把表空间存放在一个文件中(ibdata1),当开启独享表空间参数Innodb_file_per_ ...
- InnoDB表空间、段、区
1. 表空间是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认,InnoDB存储引擎只有一个表空间ibdata1,即所有数据都存放在这个表空间内.如果用户启用了参数innodb_ ...
- 019:InnoDB 表空间内部组织结构
一. 表空间内部组织结构 表空间 内部有多个段对象(Segment) 组成 每个段(Segment)由区(Extent) 组成 每个区(Extent)由页(Page)组成 每个页里面报存数据 (或者叫 ...
- Innodb表空间迁移过程
1.大致流程 将a实例的表的数据迁移到b实例上. 1.在目标实例b上创建一个相同的表 2.在目标库b上执行ALTER TABLE t DISCARD TABLESPACE; 3.在源库a上执行FLUS ...
随机推荐
- RedHat 6 yum 使用网易源
. . . . . 刚装好了 RedHat 6 系统,但是使用 yum 的时候总是提示 nothing to do,并且什么都做不了.后来经过一番搜索才知道,红帽的 yum 在线更新是收费的,而且必须 ...
- Python MQTT 最简单例程搭建
MQTT 不是普通的 client server 模型,他还加了一个 代理者. 根据剑锋的提示,先下载了 paho-mqtt 模块, ubuntu 14.04 上下载方法如下: sudo apt-ge ...
- MySql生成日历表
mysql使用存储过程,创建日历表: 准备日历表: CREATE TABLE `m_dim_day` ( `ID` ) NOT NULL AUTO_INCREMENT, `DAY_ID` ) DEFA ...
- c# 利用反射清除事件
控件的事件清除,除了-=,就只能依靠反射来执行了. /// <summary> /// 清除一个对象的某个事件所挂钩的delegate /// </summary> /// & ...
- js 获取页面宽度
特例: 当$(window).width()无效时 /* 出现时机: iframe内嵌子页面在加载过程中取不到$(window).width(),非必现,机率大概1 / 20 */ 可用以下方式获取屏 ...
- nginx 4层tcp代理获取真实ip
举个例子,Nginx 中的代理配置假如是这样配置的: location / { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_a ...
- 动态规划--最长上升子序列(Longest increasing subsequence)
前面写了最长公共子序列的问题.然后再加上自身对动态规划的理解,真到简单的DP问题很快就解决了.其实只要理解了动态规划的本质,那么再有针对性的去做这方的题目,思路很快就会有了.不错不错~加油 题目描述: ...
- 客户端通过HTTP协议与服务端交换数据
客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...
- [impala] impala 简介
[简介] Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据.已有的Hive系统虽然也提供了SQL语义,但由于H ...
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...