首页
学习
活动
专区
圈层
工具
发布

MYSQL INNODB表压缩

innodb_file_format = Barracuda --模式支持压缩 innodb_file_per_table = on --必须是独立表空间 压缩原理 InnoDB支持两种文件格式 Antelope...(羚羊)和Barracuda(梭鱼): Antelope :是5.6之前的文件格式,支持InnoDB表的COMPACT和REDUNDANT行格式,共享表空间默认为Antelope Barracuda:是最新的文件格式...DYNAMIC和COMPRESSED行格式是COMPACT行格式的变体,早期版本的InnoDB对数据库文件使用文件格式Antelope。...和INNODB_CMPMEM_RESET:innodb_buffer_pool中压缩页的信息; INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET:MYSQL5.7...InnoDB未压缩的数据页是16K,根据选项组合值,mysql为每个表的.ibd文件使用1kb,2kb,4kb,8kb,16kb页大小,实际的压缩算法并不会受KEY_BLOCK_SIZE值影响,这个值只是决定每个压缩块有多大

10.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MySQL InnoDB引擎表空间(tablespace)

    = ON 现在的MySQL版本已经可以实现自动扩展表空间,其中innodb_file_per_table默认是开启的,表示为每一张新建的表创建表空间,这样可以避免ibdata1过于庞大。...其实现基于LSN(Log Sequence Number),数据落盘前都会先写REDO log. 2.UNDO tablespace UNDO表空间用于存放一个或多个UNDO log文件。...MySQL初始化之前完成 可以truncate但不能drop,如果要使用truncate的话则UNDO表空间必须已经独立于系统表空间 默认大小10M 相关参数 innodb_undo_tablespace...临时表的UNDO log存在于临时表空间 server启动时,默认的临时表空间文件ibtmp1会被重新创建 优点:临时表的REDO log I/O被消除,性能得以提升 相关参数 innodb_temp_data_file_path...|-fsp_header_init_fields () //将tablespace id等信息写入文件头 当然用户也可以在建表时指定(包括innodb-file-per-table

    6.3K60

    mysql --innodb之文件分类

    unix域套接字方式进行连接时需要的文件 pid文件:mysql实例进程ID文件,由参数pid_file空间,文件名为主机名.pid mysql表结构文件:存放mysql表结构定义文件 存储引擎文件:存储引擎文件存储记录和索引等数据...OW在sql语句影响的数据较多时占用的磁盘量会上升 mysqlbinlog命令可以查看二进制日志详情 作用 进行数据恢复 主从同步 判断二进制日志中是否存在注入型sql攻击 innodb存储引擎文件 表空间文件...系统表空间文件 也常被叫做默认表空间文件和共享表空间文件 包含数据字典,共享系统表,undo日志,双写缓冲 innodb_data_file_path 参数可以配置大小和位置,且允许设置自动增长。...innodb_data_file_path = /db/ibdata1:200M;/dr2/db/ibdata2:200M:autoextend 独立表空间文件 为每张表生成独立表空间 命名规则:表名....idb 独立表空间打开需要将innodb_file_per_table 参数设置为ON 用来存储表数据、索引等信息,其他信息还是放在系统表空间 重做日志文件 用来防止断电等意外情况,数据库需要依赖重做日志恢复到断电前的状态

    24410

    mysql--innodb之索引组织表

    t1; _rowid可以查看主键数值,但仅限单个主键,多列组成的复合主键不适用 innodb存储逻辑结构 表空间 数据都被逻辑的放在一个空间中,也叫做表空间。...默认情况下所有数据都会被存储到共享表空间中,如果启动参数innodb_file_per_table,则每张表的数据都会单独存放到一个表空间中 表空间由段(segment)、区(extent)、页(page...设置页的默认大小,非压缩数据 页 innodb磁盘管理的最小单位,默认页大小16kb,b+树叶节点默认为一页 数据页(b+树叶节点):存储表中的数据记录 undo页 (undo日志页):存储事务回滚信息...数据按行存放, 每页最多允许存放16kb/2b-200行的记录,即7992行记录 innodb行记录格式 行记录格式类型 REDUNDANT: innodb的原始行搁置,兼容性较好,存储率较低 COMPACT...n_fields值代表一行中列的数量,占用10位,故mysql支持表中列最多为1023 列信息:变长列为空不额外占用空间,但固定长度列为空会占用可能存放的最大字节数 Compact 行记录格式 create

    40710

    MySQL InnoDB 共享表空间和独立表空间

    导读:深入学习MySQL的时候总是习惯性的和Oracle数据库进行比较。在学习MySQL InnoDB的存储结构的时候也免不了跟Oracle进行比较。...Oracle的数据存储有表空间、段、区、块、数据文件;MySQL InnoDB的存储管理也类似,但是MySQL增加了一个共享表空间和独立表空间的概念。...一、基本概念 共享表空间:Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所以其大小限制不再是文件大小的限制,而是其自身的限制。...默认的文件名为:ibdata1 初始化为10M 二、查看数据库的表空间 mysql> show variables like 'innodb_data%'; 我本地库比较小表空间主要由一个文件组成:ibdata1...以下是摘自mysql官方的一些介绍: 共享表空间的优点 表空间可以分成多个文件存放到各个磁盘,所以表也就可以分成多个文件存放在磁盘上,表的大小不受磁盘大小的限制(很多文档描述有点问题)。

    4.9K30

    mysql-innodb之分区表

    定义: 分区表从逻辑上来说只有一个表或者分区,从物理上表或者索引可能由数十个物理分区组成。mysql数据库支持水平分区,且为局部分区,单个分区同时存储数据+索引。...KEY分区:根据mysql数据库提高的哈希函数来进行分区 RANGE分区: 创建表t 带1个分区 create table t ( id int PRIMARY KEY...物理分区是指单独的数据文件、索引文件、表结构等 3. 表分区是逻辑维度,而区是存储维度。...表分区是为了解决查询效率,快速影响用户查询,且每个分区都有自己单独的.idb文件,而idb文件一般由多个区构成,一个区包含连续的64个页 *疑问: 表分区更适合OLAP, 对于OLTP不是很适用?...参考文献:mysql技术内幕(innodb存储引擎)第2版 原创声明:转载自己其他账号

    37510

    MySQL六:InnoDB数据文件

    转载~ 一、数据文件的组成 innodb数据逻辑存储形式为表空间,而每一个独立表空间都会有一个.ibd数据文件,ibd文件从大到小组成: 一个ibd数据文件-->Segment(段)-->Extent(...区)-->Page(页)-->Row(行) 表空间(Tablesapce) 表空间,用于存储多个ibd数据文件,用于存储表的记录和索引,一个文件包含多个段。...: FIL_PAGE_SPACE_OR_CHKSUM 在MySQL4.0.14版本之前 该值代表该页属于哪个表空间,当innodb_file_per_table没有开启事,共享表空间中可能存放了许多页...MySQL4.0.14之后版本 该值代表页的checksum值(一种新的checksum值)。 FIL_PAGE_OFFSET 表空间中页的偏移值。...FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID 从MySQL 4.1开始,该值代表页属于哪个表空间。

    1.7K10

    InnoDB 表空间

    像上文描述的这种每张表都有自己单独的数据存储文件的,叫独占表空间;相对应的,InnoDB 还有自己的系统表空间,在系统表空间下,所有表的数据都存储在同一个文件中。...那数据什么时候存储在系统表空间,又什么时候存储在独占表空间呢? 这个可以通过 MySQL 的配置项 innodb_file_per_table 来决定。...深入表空间文件内部 其实在很早之前我讲 InnoDB的内存架构 时我就讲过,在 InnoDB 中,页是其数据管理的最小单位。...当然,如果没有指定,Undo 表空间的数据文件就会放在 InnoDB 的默认数据目录下,通常来说是 /usr/local/mysql 。...而这两个 Undo 表空间数据文件的初始大小,在 MySQL 8.0.23 之前是由 InnoDB 的页大小来决定的,具体的情况如下图: 而在 MySQL 8.0.23 之后,Undo 表空间的初始化大小都是

    80420

    Mysql配置文件 innodb引擎(上)

    nnodb参数 innodb_buffer_pool_size 这个是Innodb最重要的参数,主要作用是缓存innodb表的索引,数据,插入数据时的缓冲,默认值为128M。...: innodb_read_io_threads = 10 innodb_write_io_threads = 6 innodb_open_files 限制Innodb能打开的表的数据,默认为300,数据库里的表特别多的情况...innodb的logfile就是事务日志,用来在mysql crash后的恢复。所以设置合理的大小对于mysql的性能非常重要,直接影响数据库的写入速度,事务大小,异常重启后的恢复。...)系统调用,数据都保证是从磁盘上读取的 查询: 在线配置: 配置文件:innodb_flush_method=O_DIRECT innodb_data_home_dir innodb引擎的共享表空间数据文件根目录...列的表插入数据时,相关锁的行为。

    3.4K20

    InnoDB 表空间

    像上文描述的这种每张表都有自己单独的数据存储文件的,叫独占表空间;相对应的,InnoDB 还有自己的系统表空间,在系统表空间下,所有表的数据都存储在同一个文件中。...那数据什么时候存储在系统表空间,又什么时候存储在独占表空间呢? 这个可以通过 MySQL 的配置项 innodb_file_per_table 来决定。...深入表空间文件内部 其实在很早之前我讲 InnoDB的内存架构 时我就讲过,在 InnoDB 中,页是其数据管理的最小单位。...当然,如果没有指定,Undo 表空间的数据文件就会放在 InnoDB 的默认数据目录下,通常来说是 /usr/local/mysql 。...而这两个 Undo 表空间数据文件的初始大小,在 MySQL 8.0.23 之前是由 InnoDB 的页大小来决定的,具体的情况如下图: 而在 MySQL 8.0.23 之后,Undo 表空间的初始化大小都是

    72520

    Mysql数据库-mysql锁-MyISAM表锁-InnoDB行锁

    Mysql数据库-mysql锁-MyISAM表锁-InnoDB行锁 1 锁概述 “锁用在并发场景下 ” 锁机制: 数据库为了保证数据的一致性,在共享资源被并发访问时变得安全所设计的一种规则....3 mysql锁 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。下表中罗列出了各存储引擎对锁的支持情况: ?...4 MyISAM 表锁 MyISAM 存储引擎只支持表锁,这也是MySQL开始几个版本中唯一支持的锁类型。...image-20200616172128092 可以正常查询出未锁定的表; 客户端 一 : 6 执行插入操作 insert into tb_book values(null,'Mysql 高级','2088...FOR UPDATE 案例准备工作 -- 创建引擎innodb的表test_innodb_lock create table test_innodb_lock( id int(11),

    7.3K31
    领券