InnoDB存储引擎体系结构图

   

1.InnoDB数据库的结构

  (1)redo log:这里的redo log不是数据的redo log,InnoDB本也是一个数据库,身具有的redo log,所以这里的redo log只是InnoDB存储引擎的,这里是循环写入的(如下图这种模式)。但经过mysql server层的封装的话,日志是放在iblog下的。

    

  iblog对所有的存储引擎做了一层封装,把所有存储引擎的日志都封装成iblog了。

  (2)user tablespace:用户表空间

    包含:

    【1】insert buffer bitmap page:插入数据的位图索引页  【2】leaf page segment:聚集索引的叶子节点(也就是数据表数据)  【3】no leaf page segment:非叶子节点的页(其实也就是索引存放)

    从这里我们可以查出,其实聚集索引是逻辑上连续,而物理上并不是放在一起的。

  (3)sys tablespace:系统表空间

    主要是存放了undo,数据字典等信息;

2、数据库文件

  

(1)数据库配置文件/参数文件

  一般默认会按照顺序从以下几个目录去找;

  【1】/etc/my.cnf  【2】/etc/mysql/my.cnf  【3】/usr/local/mysql/my.cnf  【4】./my.cnf

  

#以下命令可以指定配置文件/参数文件的路径
mysqld_safe --default-file=/u01/my3306/my.cnf #如果要运行还得再该命令后面加个&
mysqld_safe --default-file=/u01/my3306/my.cnf &

(2)表结构定义文件

 

--进入查看表结构定义文件目录
 cd /u01/my3306/data/mysql

以下这样的结构是MYISAM引擎的():

【1】.frm:放表定义  【2】.MYD:放表数据  【3】.MYI:放表索引

下面这些才是用户的:

直接cat user.frm 是看不了的,会是乱码,需要mysql工具来看。

要去官网下载 MySQL Utilities

#然后装好后运行下面语句即可查看表结构定义

mysqlfrm --diagnostic time_zone_transition.frm

(3)数据文件

就是图中的MYD文件,不过这是Myisam的,如果是innodb应该会把索引文件和数据文件放在一起

(4)错误文件

这里因为my.cnf里面没有指定,所以查出来错误文件默认放在mysql数据根目录下的bogon.err

注意,是因为我的my.cnf文件是这样,所以结果才出现上图的情况

(5)慢查询日志

  一般慢查询日志默认是没有开启的,我们来看看如何开启。

  show variables like '%slow%';

  

  slow_query_log 这里要设置为ON,这样慢查询日志才会启用,并且才会把数据写到如上图日志文件里面去。

  

#开启慢查询日志
set global slow_query_log='ON';

  

#查看当前超过多少秒认定为慢查询,这里显示的是10S,如下图

  

#设置查询时间超过多久为慢查询并记录在慢查询日志中去
set global long_query_time=1; 

注意,这些修改都只是临时的,重启一次mysql之后就没用了。要永久有效需要在my.cnf文件里配置。

  

#编辑配置文件/etc/my.cnf加入如下内容

[mysqld]

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/test---slow.log

long_query_time = 

#修改配置后重启mysql

systemctl restart mysqld

mysql -uroot -p

#使用下面命令验证

show variables like 'slow_query%';

mysql永久开启了漫查询日志功能

(6)通用日志

  默认不开,一般用作数据库审计。开了之后会把数据库所有的操作记下来。

  show variables like '%gen%'

   

  

(1.2)学习笔记之mysql体系结构(数据库文件)的更多相关文章

  1. (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)

    目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...

  2. (1.1)学习笔记之mysql体系结构(内存、进程、线程)

    关键词:mysql体系结构 参考:https://www.cnblogs.com/zhoubaojian/articles/7866292.html 一.mysql体系架构概述 1.mysql体系结构 ...

  3. MemSQL学习笔记-类似MySQL的数据库

    http://gigaom.com/cloud/ex-facebookers-launch-memsql-to-make-your-database-fly/ -- 多主-从 http://www.m ...

  4. 吴裕雄--天生自然MySQL学习笔记:MySQL 选择数据库

    连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库. 从命令提示窗口中选择MySQL数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库.可以使 ...

  5. 吴裕雄--天生自然MySQL学习笔记:MySQL 删除数据库

    使用普通用户登陆 MySQL 服务器,可能需要特定的权限来创建或者删除 MySQL 数据库,所以使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过程中,务必要十分谨慎,因为在执行删 ...

  6. 吴裕雄--天生自然MySQL学习笔记:MySQL 创建数据库

    在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB: [root@ho ...

  7. SQLMAP学习笔记2 Mysql数据库注入

    SQLMAP学习笔记2 Mysql数据库注入 注入流程 (如果网站需要登录,就要用到cookie信息,通过F12开发者工具获取cookie信息) sqlmap -u "URL" - ...

  8. golang学习笔记16 beego orm 数据库操作

    golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...

  9. MySQL笔记(1)---MySQL体系结构和存储引擎

    1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询. 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合.MySQL中数据库文件可以是frm.MYD.MYI.ibd结尾的 ...

随机推荐

  1. 购物车1.0版——python第5天

    # 输出商品列表,用户输入序号,显示选中商品名称# 商品li = ['手机', '电脑', '耳机', '键盘', '鼠标']# 要求:1.页面显示序号+商品名称如下# 1 手机# 2 电脑# 3 耳 ...

  2. php的注释方法

    注释是每个程序员学习时的基础,我们通过可以注释来备注一信息.增加代码的可读性.下面我们就为大家介绍一下PHP的注释方法. 1, // 这是单行注释 2,# 这也是单行注释 3,/* */多行注释块   ...

  3. python发送邮件,文件后缀变成了bin

    问题:在用python做自动化测试时,将html测试报告在邮件中添加文件发送的过程中,发现发送成功后,文件的后缀为.bin 解决方法: 加一行代码 msg_att["Content-Disp ...

  4. [Java 教程 02] 开发环境搭建

    在上一篇文章对Java做了一个简单介绍之后,我想大家都已经对她有一个初步的认识了吧!那踏入正式学习使用Java之前,我们有一步是不得不做的,它是什么呢?没有错,就是我们本篇文章的标题所说,搭建Java ...

  5. is not an enclosing class

    public class A {public class B { }}; 需要实例B类时,按照正逻辑是,A.B ab = new A.B();那么编译器就会出现一个错误–“is not an encl ...

  6. 从Flask-Script迁移到Flask-Cli

    Abstrct flask从0.11版本开始引入了click提供命令行支持,在此之前我们通常会引入Flask-Script来提供. 在<Flask web开发>这本书编写时flask0.1 ...

  7. java基础之轻松搞定反射

    前言 java的名词太古怪.反射白话文解释,就是把一个字符串的类名,实例化,少了个new单词. 反射步骤 准备一个苹果类像这个样子. public class PingGuo { private St ...

  8. 转 top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight

    1.top 此属性仅仅在对象的定位(position)属性被设置时可用.否则,此属性设置会被忽略. 复制代码 代码如下: <div style=" position:absolute; ...

  9. python-列表list- 元组(tuple)- 集合(set)-字典(dict)-实例代码

    python 经常用的数据类型还有列表list- 元组(tuple)- 集合(set)-字典(dict),以下是这四种类型用法的简单示例. 1.列表list        [  ] 元素可变 , 有序 ...

  10. java版扫雷

    package com.titian.bean; import java.awt.CardLayout; import java.awt.Point; public class Grid { char ...