InnoDB存储引擎文件

MySQL数据库包括数据库本身的文件和存储引擎文件。数据库自身的文件由参数文件(my.cnf)、错误日志文件、慢查询日志文件、查询日志文件、二进制日志文件、套接字文件、pid文件、表结构定义文件(tabname.frm)

和InnoDB存储引擎相关的文件有表空间文件和重做日志文件。

一、表空间文件

InnoDB引擎将存储的数据按照表空间进行存放的设计。在默认配置下有一个初始大小10M,名为ibdata1的文件。该文件就是默认的表空间文件,可以通过innodb_data_file_path参数配置,格式如下:

innodb_data_file_path = datafile1_spec1 [;datafile2_spec2]...

用户通过多个文件组成表空间,同时制定文件的属性,如:

innodb_data_file_path = /db/ibdata1:2000M;/dr/ibdata2:2000M:autoextend

这里时两个文件组成的表空间,若两个文件位于不同的磁盘,磁盘的负载可能被平均。可以提高数据库的整体性能,设置了innodb_data_file_path参数,所有InnoDB引擎表数据都会记录到该共享表空间中。

如果设置了innodb_file_per_table,则每个InnoDB表产生一个独立的表空间。命名规则 表名.ibd,不再将所有数据存放在默认的表空间。这些单独的表空间仅存储表的数据,索引,插入缓冲BITMAP等信息,其余信息仍然存在默认表空间。如图是InnoDB对于文件的存储方式:

 二、重做日志文件

默认情况下,在InnoDB引擎的数据目录下有两个ib_logfile0和ib_logfile1的文件。这两个就是重做日志文件。当实例或介质失败时,重做日志就派上用场。例如,主机断电,数据库根据重做日志恢复到断电前的时刻。

每个InnoDB引擎至少有一个重做日志文件组,每个文件组至少两个重做日志文件。为了提高更高的可靠性,用户可以设置多个镜像日志组。将不同的文件组放在不同的磁盘上,提高日志的高可用性。在日志组中每个重做日志的大小一致。以循环的方式写入。InnoDB先写重做日志1,当达到文件最后,切换到重做日志2,日志2满了之后再切换到日志1。影响重做日志属性的参数有:

(1)、innodb_log_file_size 每个重做日志的大小

(2)、innodb_log_files_in_group 重做文件日志组中日志文件的数量,默认为2。

(3)、innodb_mirrored_log_groups 日志镜像文件组的数量,默认1。表示只有一个日志文件组,没有镜像。

(4)、innodb_log_group_home_dir 日志文件组所在路径,默认./ 表示在MySQL的数据目录下。

重做日志对系统性能影响很大,如果太大恢复需要很久。设置太小,否则一个事务的日志需要多次切换重做日志文件。重做日志太小,会频繁的触发检查点

InnoDB存储引擎文件的更多相关文章

  1. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  2. 《Mysql技术内幕,Innodb存储引擎》——文件、表

    文件 日志 错误日志 对Mysql启动.运行和关闭过程进行记录,通过SHOW VARIABLES LIKE 'log_error'查看日志文件位置. 慢查询日志 Mysql启动时设置一个阈值,运行时间 ...

  3. MySQL技术内幕InnoDB存储引擎(三)——文件相关

    构成MySQL数据库和InnoDB存储引擎表的文件类型有: 参数文件:MySQL实例运行时需要的参数就是存储在这里. 日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件. socket文件 ...

  4. MySQL InnoDB 存储引擎原理浅析

    注:本文主要基于MySQL 5.6以后版本编写,多数知识来着书籍<MySQL技术内幕++InnoDB存储引擎>,本文章仅记录个人认为比较重要的部分,有兴趣的可以花点时间读原书. 一.MyS ...

  5. 【Mysql技术内幕InnoDB存储引擎】读书笔记

    一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...

  6. InnoDB存储引擎的表空间文件,重做日志文件

    存储引擎文件:因为MySQL表存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据.这些存储引擎真正存储了数据和索引等数据. 表空间文件 InnoDB存储引擎在存储设计上模仿了Oracle,将存 ...

  7. 在MySQL的InnoDB存储引擎中count(*)函数的优化

    写这篇文章之前已经看过了很多数据库方面的优化内容,大部分都是加索引.使用事务.要什么select什么等等.然而,只是停留在阅读的层面上,很少有实践,因为没有遇到真实的项目,一切都是纸上谈兵.实践是检验 ...

  8. MySQL InnoDB存储引擎

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章是对Innodb存储引擎的概念进行一个整体的概括,innodb存储引擎的 ...

  9. [MySQL Reference Manual]14 InnoDB存储引擎

    14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...

随机推荐

  1. JxBrowser之一:Java嵌入Chrome浏览器

    1.JxBrowser是一个让Java可以轻松集成Chrome浏览器的跨平台库:一般用于网络爬虫或者网页自动化测试等. 官方网址:https://jxbrowser.support.teamdev.c ...

  2. Spring boot actuator端点启用和暴露

    1.启用端点 默认情况下,除了shutdown端点是关闭的,其它的都是启用的.配置一个端点的启用,使用management.endpoint..enabled属性,下面的例子是启用shutdown端点 ...

  3. 由装饰者模式来深入理解Java I/O整体框架

    前言 Java里面的I/O这一部分看过很多遍,每次看完之后特别混乱,又是输入流,又是输出流,又是字符流,又是字节流,还有什么过滤流,缓冲流.每次看得我如入云里雾里,直到后面看了设计模式这一块,才算真正 ...

  4. JQUERY的属性进行操作

    Jquery方式操作属性(attribute) $().attr(属性名称);   //获得属性信息值 $().attr(属性名称,值);    //设置属性的信息 $().removeAttr(属性 ...

  5. linux iso 下载地址

    Centos 5.3  下载地址: http://www.karan.org/mock/5.3/CentOS-5.3-i386-bin-1to6.torrent http://www.karan.or ...

  6. week7 ls

    week7 ls 实现ls: 实现ls -l:

  7. ionic3开发ios端

    ionic框架是一端开发,三端适用(android端,ios端,web端),意思是在其中一端开发的代码,拿到另外两端,代码同样生效 那现在就说一下在web端开发拿到ios端开发前需要做的事情 开发io ...

  8. js中用户名的正则(字符,数字,下划线,减号)

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...

  9. prototype和__proto__的关系是什么

    首先,要明确几个点:1.在JS里,万物皆对象.方法(Function)是对象,方法的原型(Function.prototype)是对象.因此,它们都会具有对象共有的特点.即:对象具有属性__proto ...

  10. C#中用NPOI的excel导出

    //机构表导出 private static List<User2> amininf = new BLL.Bll().GetUser2s(); //定义数据源导出对象 #region 导出 ...