MySQL学习笔记-数据库文件

数据库文件



MySQL主要文件类型有如下几种



参数文件:my.cnf——MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类型以及定义作用域;

日志文件:记录MySQL对某种条件做出响应时候写入的文件,包括错误日志、查询日志、慢查询日志、二进制日志;

Mysql表结构文件:存放MySQL表结构定义文件,不论采用何种存储引擎,MySQL都有一个以frm为后缀名的文件;

Socket文件:当用linux的MySQL命令行窗口登录的时候需要的文件;

Pid文件:MySQL实例的进程ID文件;

存储引擎文件:每个存储引擎都有自己的文件夹来保存各种数据,这些存储引擎真正存储了数据和索引等数据。

参数文件



当MySQL实例启动时,MySQL会读取一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等设置。默认情况下,MySQL实例会按照一定的次序去取,可以通过命令行,查看my.cnf文件的位置;

  1. mysql --help | grep my.cnf

Mysql在启动时可以不需要参数文件,但是如果在默认的数据库目录下找不到mysql架构,则启动会失败;

Mysql的参数可以通过“show variables”来查看,由于从mysql5.1版本开始,可以通过information_schema架构下的GLOBAL_VARIABLES视图来进行查找,所以也可以这样查看

  1. select * from information_schema.global_variables;

Mysql 的参数类型:

分为动态(dynamic)和静态参数(static)。

动态参数意味着可以再mysql实例运行中进行更改,有些参数修改可以是基于会话的也可以是基于整个实例的生命周期;

静态参数说明在整个实例声明周期内都不得进行更改,就好像是只读(read only)的。。Mysql5.1的动态参数在这里。

日志文件



一般来说日志文件的存放路径如下:


  • 错误日志

该文件对Mysql的启动、运行、关闭过程进行了记录,在遇到问题时,首先应该查看此文件,可以通过“show variables like ‘log_error’;”来定位该文件。

  • 慢查询日志

该文件记录了所有运行时间超过阀值的SQL语句,该阀值可以通过参数long_query_time来设置。默认值为10秒。

  1. show variables like ‘long_query_time‘;

但是在默认情况下,Mysql并不启动满查询日志,需要手工修改这个参数;

  1. show variables like ‘log_slow_queries‘;

需要注意的两点内容:

首先,慢查询日志记录的是大于阀值的SQL语句,而不是大于等于!!!

其次,从Mysql 5.1开始,long_quey_time开始以微秒记录sql语句运行时间。

另一个和慢查询相关的参数是log_queries_not_using_index,如果运行的SQL语句没有使用索引,则Mysql则同样会将这条SQL语句记录到慢查询日志文件中;

  1. show variables like ‘log_queries_not_using_indexes‘;

在慢查询日志文件逐渐增大时,可考虑使用工具mysqldumpslow工具帮助我们分析。该工具的使用您可以使用 “man mysqldumpslow” 或者去这里了解。Mysql5.1开始可以将慢查询的日志记录放入一张表中,该表在mysql.slow_log表中。是否放在表中由参数‘log_output’来决定;

参数log_output指定了慢查询输出的格式,默认为FILE,也可以将其设置为TABLE,就可以去Mysql.slow_log中去查询了。

  1. show variables like ‘log_output‘;

同样也可以将查询日志的记录放入mysql架构下的general_log表。

  • 查询日志

查询日志记录了所有对Mysql数据库请求的信息,不论这些请求是否得到了正确的执行。默认文件名为:主机名.log。我们查看一个查询日志:

4、二进制日志因为二进制日志太重要了,在这里暂且不提。InnoDB存储引擎文件

来自为知笔记(Wiz)

时间: 2024-10-12 13:17:44

MySQL学习笔记-数据库文件的相关文章

MYSQL学习笔记——数据库范式及MYSQL优化整体思路

一.数据库范式                                                                               为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 1.1.第一范式(1NF:每一列不可包含多个值)      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列

mysql学习笔记-数据库常用命令

数据库常用命令 1.添加需要路径:PATH="$PATH":/usr/local/mysql/bin 2.登陆数据库系统:mysql -h localhost -u root -p 3.创建数据库:CREATE DATABASE 数据库名 4.显示数据库:SHOW DATABASES; 5.删除数据库:DROP DATABASE 数据库名; 6.创建表:CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],属性名 数据类型); 注意

MySQL学习笔记—数据库基本操作

1.创建数据库 CREATE {DATABASE | SEHEMA} [IF NOT EXISTS] db_name [[DEFAULT]] CHARACTER SER [=] charset_name {}中是2选一 []中是可选可不选 创建text1数据库目录 CREATE DATABASE text1; 创建text1数据库目录 CREATE DATABASE IF NOT EXISTS text1;  数据库存在时加上IF NOT EXISTS会隐藏错误信息 查看隐藏的错误信息 SHOW

MySQL学习笔记-事务相关话题

事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都不保存. InnoDB存储引擎中的事务完全符合ACID的特性. 原子性(atomicity) 原子性是指整个数据库事务是不可分割的工作单位.只有使事务中所有的数据库操作执行都成功,才算整个事务成功.如果事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行

MySQL学习笔记-锁相关话题

在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-level locking): BDB采用页面锁(page-leve locking)或表级锁,默认为页面锁: InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁: 各种锁特点 表级锁(table-level loc

MySQL学习笔记—SQL服务器模式汇总

MySQL学习笔记-SQL服务器模式汇总 MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式.这样每个应用程序可以根据自己的需求来定制服务器的操作模式. 模式定义MySQL应支持哪些SQL语法,以及应执行哪种数据验证检查.这样可以更容易地在不同的环境中使用MySQL,并结合其它数据库服务器使用MySQL. 你可以用–sql-mode="modes"选项启动mysqld来设置默认SQL模式.如果你想要重设,该值还可以为空(–sql-mode ="&q

MySQL学习笔记之五 有关数据表操作

MySQL在创建表的时候,创建一个.frm文件保存表和列定义.索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM

MySQL学习笔记之三 表类型

你能用的数据库引擎取决于MySQL在安装时候是如何被编译的.要添加一个新的引擎,就必须编译MySQL.仅仅为了添加一个特性而编译应用程序的想法对于Windows的开发人员来说可能有点小题大做,得不偿失,但是在Unix的世界里,这已经成为了标准.在缺省的情况下,MySQL支持三个引擎:ISAM.MyISAM和HEAP.另外两种类型InnoDB和Berkley(BDB),也常常可以使用. ISAM ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之初就考虑到数据库被查询的次数远远大于

MySQL学习笔记—触发程序

MySQL学习笔记-触发程序 触发程序是与表有关的命名数据库对象,当表上发生特定事件时,将触发执行相应的触发程序. CREATE TRIGGER语法 CREATE TRIGGER语法: CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象. 触发程序与命名为tbl_name的表相关.tbl_na