zoukankan      html  css  js  c++  java
  • MySQL InnoDB独立表空间模式的优点和缺点介绍

     

    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指定当文件满了之后增长的空间。
  • 相关阅读:
    页面加载完后要执行的代码
    作为90后迈向成为一个优秀的男人系列之一
    今天看的一本书关于复制威力总结
    Ext.Net弹出窗口回写父窗口
    div 显示滚动条与div显示隐藏的CSS代码
    你可以向马云学习什么
    灵活多变的工作台页面配置Spring.Net.Framwork春天快速开发平台
    ROW_NUMBER() OVER函数的基本用法
    EXTJS4官方文档翻译系列一:类系统和编码规范
    SQLserver2008全文检索使用方法
  • 原文地址:https://www.cnblogs.com/shamo89/p/8664982.html
Copyright © 2011-2022 走看看