(1.2)学习笔记之mysql体系结构(数据库文件)
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.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)
目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...
- (1.1)学习笔记之mysql体系结构(内存、进程、线程)
关键词:mysql体系结构 参考:https://www.cnblogs.com/zhoubaojian/articles/7866292.html 一.mysql体系架构概述 1.mysql体系结构 ...
- MemSQL学习笔记-类似MySQL的数据库
http://gigaom.com/cloud/ex-facebookers-launch-memsql-to-make-your-database-fly/ -- 多主-从 http://www.m ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 选择数据库
连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库. 从命令提示窗口中选择MySQL数据库 在 mysql> 提示窗口中可以很简单的选择特定的数据库.可以使 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 删除数据库
使用普通用户登陆 MySQL 服务器,可能需要特定的权限来创建或者删除 MySQL 数据库,所以使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过程中,务必要十分谨慎,因为在执行删 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 创建数据库
在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB: [root@ho ...
- SQLMAP学习笔记2 Mysql数据库注入
SQLMAP学习笔记2 Mysql数据库注入 注入流程 (如果网站需要登录,就要用到cookie信息,通过F12开发者工具获取cookie信息) sqlmap -u "URL" - ...
- golang学习笔记16 beego orm 数据库操作
golang学习笔记16 beego orm 数据库操作 beego ORM 是一个强大的 Go 语言 ORM 框架.她的灵感主要来自 Django ORM 和 SQLAlchemy. 目前该框架仍处 ...
- MySQL笔记(1)---MySQL体系结构和存储引擎
1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询. 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合.MySQL中数据库文件可以是frm.MYD.MYI.ibd结尾的 ...
随机推荐
- Django 上下文管理器的应用
使用场景:模板继承可以减少页面内容的重复定义,实现页面内容的重用.个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用.但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的 ...
- CSDN如何转载别人的博客
前言 对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间 ...
- MybatisPlus自动填充公共字段的策略
背景:数据库中多个表有时间字段,并且字段名一致 需求:该时间字段由MybatisPlus自动插入和更新,业务代码无需处理 方法: 一.创建基础实体[BaseEntity],定义需要处理的公共字段(创建 ...
- leetcode.图.785判断二分图-Java
1. 具体题目 给定一个无向图graph,当这个图为二分图时返回true.如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这 ...
- Codeforces 1140C(贪心+堆)
题面 传送门 题意: 给出长度为n的序列b,t,定义一个子序列的值为\(\min\{ b_i\} \times \sum t_i\),求所有子序列中值最大的一个,输出最大值 分析 假如固定某个b[i] ...
- [fw]GDT是在分段中為了相容real mode 跟 protected mode的產物
在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table). 为什么要有GDT?我们首先考虑一下在Real Mode下的编程模型: 在R ...
- node单线程
const fs=require('fs'); console.time('timer'); fs.stat('./1.txt',(err,stats)=>{ //console.log(sta ...
- 【记录】vue相关知识点
let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...
- 多个ip地址获取
#include "stdafx.h"#include <stdio.h> #include <winsock.h> #include <window ...
- 2019牛客多校第五场H - subsequence 2 拓扑
H - subsequence 2 题意 要你使用前\(m\)个小写字母构造一个长度为\(n\)的字符串 有\(m*(m-1)/2\)个限制条件: \(c_{1} .c_{2}. len\):表示除去 ...