zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL InnoDB独立表空间模式的优点和缺点介绍详解数据库

mysql数据库模式 详解 介绍 空间 InnoDB 独立
2023-06-13 09:20:11 时间
File-Per-Table的优点:

1.当表删除或者truncate,空间可以被OS回收。

2.Truncate table在单个.ibd文件上执行更快。

3.可以为每个表指定一个特定存储。优化IO,空间管理。CREATE TABLE DATA DIRECTORY =absolute_path_to_directory 。

4.运行OPTIMEIZE TABLE,压缩或者重建创建表空间。运行OPTIMIZE TABLE InnoDB会创建一个新的ibd文件。当完成时,老的表空间会被新的代替。

5.可以移动单个表,不需要移动整个数据库

6.可以把表复制到另外一个实例

7.innodb_file_per_table启动后才能使用Barracuda文件格式。

8.可以更有效的存储带BLOB,TEXT使用动态行模式的表。

9.使用innodb_file_per_table可以提高recovery的成功率,减少损坏错误发生恢复的时间。

10.可以快速的备份,恢复单个表。

11.innodb_file_per_table 可以从备份中去除一个表

12.innodb_file_per_table在备份和复制表时,容易观察每个表的状态。

13.可以通过文件系统直接观察表的大小。

14.当innodb_flish_method设置为O_DIRECT,通常linux文件系统不允许并发的写入同一个文件。使用innodb_file_per_table就会有性能提升。

15.不启用innodb_file_per_table,数据都会放在系统表空间中,最大64TB,如果使用innodb_file_per_table每个表可以64TB。

File-Per-Table的缺点:

1.表空间中的空间只能被这个表使用

2.fsync操作必须在每个表上都运行一遍

3.mysqld必须保持一个打开的文件句柄,表太多会影响性能。

4.会消耗很多文件描述

5.innodb_file_per_tablezhiyou 5.6.6或更高版本才能用,有向下兼容问题。

6.如果很多表都增长,会出现文件碎片问题。导致drop表和表扫描性能下降。

7.当drop表的时候会扫描buffer pool,如果太大会比较耗时。

8.innodb_autoextend_increment指定当文件满了之后增长的空间。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/4751.html

mysql