zoukankan      html  css  js  c++  java
  • MySQL Table--独立表空间

    数据库表空间

    独立表空间

    在MySQL 5.6 中引入独立表空间的概念,启用独立表空间后,每个表将生成独立的文件来进行存储。

    创建表时可以指定表存放的文件路径

    ##首选需要确保innodb_file_per_table开启:
    show variables like 'innodb_file_per_table';
    
    ##创建表时指定目录
    CREATE TABLE t1 (c1 INT PRIMARY KEY) 
    DATA DIRECTORY = '/remote/directory';

    共享表空间优缺点

    Innodb的所有数据保存在一个单独的表空间里面,共享表空间可以由多个文件组成,当表使用共享表空间时,表数据可以分布在多个文件中,从而不受Innodb单表不超过64TB的限制。
    默认的共享表空间的文件路径在data目录下,默认文件名为ibdata1,初始化为10M。
    
    优点:
    可以放表空间分成多个文件存放到各个磁盘上,没有单表不超过64TB的限制。
    
    缺点:
    由于多表共用一个共享表空间,当某些表进行大量删除后,共享表空间存在大量碎片,但MySQL暂未提供对共享表空间收缩的方法。

    独立表空间优缺点

    通过innodb_file_per_table参数将innodb表的数据和索引存放到其自己的表空间中,不再使用共享表空间,独立表空间的默认目录为innodb_data_file
    
    优点:
    1、 每个表有自己独立的表空间,数据和索引存放到其独立的表空间中。
    2、可以轻松实现表在不同数据库之间移动
    3DROP TABLE后,表使用的空间立即被释放
    4、当表中数据被大量删除后,可以使用alter table TableName engine=innodb;来进行收缩
    5、表空间存在碎片时不会影响其他表的使用。
    
    缺点:
    1、使用独立表空间后,无法再将表数据分散到不同的多个文件中,如果单个存储无法提供该表所需的全部空间时,无法通过增加新存储来解决
    2、innodb_file_per_table开启后,不会影响已经使用共享表空间的表。
    3、单表数据较大时,导致其对于的数据文件过大而不利于维护

     

  • 相关阅读:
    《互联网时代》第三集·能量
    《互联网时代》第二集·浪潮
    java 基础类库之 SysFun
    java 基础类库之 SQLFun
    java 基础类库之 FormatFun
    Java 之 JDBC
    WepE
    MySql学习笔记
    Oracle学习笔记——点滴汇总
    Linux学习笔记——基于鸟哥的Linux私房菜
  • 原文地址:https://www.cnblogs.com/gaogao67/p/11373623.html
Copyright © 2011-2022 走看看