zoukankan      html  css  js  c++  java
  • Mysql 表空间概念

    mysql> show variables like 'innodb_data%';
    +-----------------------+------------------------+
    | Variable_name         | Value                  |
    +-----------------------+------------------------+
    | innodb_data_file_path | ibdata1:12M:autoextend |
    | innodb_data_home_dir  |                        |
    +-----------------------+------------------------+
    2 rows in set (0.00 sec)
    
    
    [mysql@master data]$ ls -ltr *ibdata1*
    -rw-rw----. 1 mysql mysql 12582912 Mar 13 16:07 ibdata1
    [mysql@master data]$ 
    
    
    MYSQL中INNODB表存储引擎支持表空间,而MYISAM则没有表空间的概念。
    
     innodb表的数据结构 
    innodb这种引擎,与MYISAM引擎的区别很大。特别是它的数据存储格式等.
    对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间。
    什么是共享表空间和独占表空间
    共享表空间以及独占表空间都是针对数据的存储方式而言的。
    共享表空间:  某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在
    
    data目录下。 默认的文件名为:ibdata1  初始化为10M。
    独占表空间:  每一个表都将会生成以独立的文件方式来进行存储,每一个表都有一个.frm表描述文件,还有一
    
    个.ibd文件。 其中这个文件包括了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置
    
    之中。
    两者之间的优缺点
    共享表空间:
    优点:
    可以放表空间分成多个文件存放到各个磁盘上(表空间文件大小不受表大小的限制,如一个表可以分布在不同步的文
    
    件上)。数据和文件放在一起方便管理。
    缺点:
    所有的数据和索引存放到一个文件中以为着将有一个很常大的文件,虽然可以把一个大文件分成多个小文件,但是多
    
    个表及索引在表空间中混合存储,这样对于一个表做了大量删除操作后表空间中将会有大量的空隙,特别是对于统计
    
    分析,日值系统这类应用最不适合用共享表空间。
    独立表空间:
    在配置文件(my.cnf)中设置: innodb_file_per_table
    优点:
    1.  每个表都有自已独立的表空间。
    2.  每个表的数据和索引都会存在自已的表空间中。
    3.  可以实现单表在不同的数据库中移动。
    4.  空间可以回收(除drop table操作处,表空不能自已回收)
    a)         Drop table操作自动回收表空间,如果对于统计分析或是日值表,删除大量数据后可以通过:alter 
    
    table TableName engine=innodb;回缩不用的空间。
    b)         对于使innodb-plugin的Innodb使用turncate table也会使空间收缩。
    c)         对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。
    缺点:
    单表增加过大,如超过100个G。
     
    相比较之下,使用独占表空间的效率以及性能会更高一点。
    共享表空间以及独占表空间之间的转化
    innodb_file_per_table 通过这个参数来实现的转化,如果为OFF说明所使用的是独占表空间【默认情况下,所使用
    
    的表空间为共享表空间】

  • 相关阅读:
    赫尔维茨公式
    从解析几何的角度分析二次型
    Struts 1 Struts 2
    记一次服务器被入侵的调查取证
    契约式设计 契约式编程 Design by contract
    lsblk df
    Linux Find Out Last System Reboot Time and Date Command 登录安全 开关机 记录 帐号审计 历史记录命令条数
    Infrastructure for container projects.
    更新文档 版本控制 多版本并发控制
    Building Microservices: Using an API Gateway
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351759.html
Copyright © 2011-2022 走看看