MySql各种文件及参数

参数文件

MySql实例启动时,数据库会去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了内存结构有多大等信息。

数据库的参数可以看成键值对。

可以通过show variables like ‘要看的参数%’\G;来查看想看的参数。支持模糊查询用%,例如:show variables like ‘innodb_buffer%’\G;

MySql数据库的参数可以分为两类:

1.动态参数:可以在数据库实例运行中修改

2.静态参数:在实例的生命周期内不得进行修改

参数的范围有:当前会话session和整个实例生命周期global

可以通过set命令修改动态参数,例如:

Set @@global.read_buffer_size=102400;

Set @@session.read_buffer_size=102400;

查看命令如下:

Select @@global.read_buffer_size\G;

Select @@session.read_buffer_size\G;

日志文件

包括错误日志、二进制日志、慢查询日志、查询日志。

1.错误日志:对MySql的启动、运行、关闭过程进行了记录。

通过命令show variables like ‘log_error’,来找到文件。

2.慢查询日志:可以定位存在问题的SQL语句,进行优化。可以通过设定一个查询时间的阀值,超过该阀值的都会记录到慢查询日志文件中。该阀值可以通过参数long_query_time来设置,默认值是10秒。Show variables like ‘long_query_time’\G;如果慢查询日志太大,可以通过命令mysqldumpslow来查看日志文件。例如

mysqldumpslow ***-slow.log;

如果想查看执行时间最长的10条sql,则:

Mysqldumpslow –s al –n 10 ***.log

比较新的mysql版本还支持把慢查询插入库表slow_log中。

参数log_output可以设置为FILE和TABLE,

Set global.log_output=’TABLE’;

Select * from mysql.slow_log\G;可以查询出慢查询。

3.查询日志

记录了所有对MySql数据库请求的信息

4.二进制日志

记录了对MySql数据库执行更改的所有操作。不包含select和show等操作。二进制文件的主要作用:

恢复:数据库全备文件恢复后,利用二进制文件进行point-in-time的恢复

复制:使远端的从库跟主库数据保持一致

审计:可用于查看是否有攻击

max_binlog_size:用于设置二进制文件的大小,默认1G,超过后后缀自动+1

binlog_cache_size:当使用事务时,所有未提交的将会存在缓存中,这个值可以用于设定缓存大小。(可以通过查看binlog_cache_use、binlog_cache_disk_use来确定缓存大小,show global status like 'binlog_cache%';)

sync_binlog:设置参数sync_binlog=[N]来实现每写缓存N次就同步到磁盘(N=1时采取同步方式同步磁盘)。如果N=1,则会出现当采取事务方式执行时,如果事务执行一半发生了宕机,事务回滚,但二进制文件会记录且不会回滚。此问题可以通过设置innodb_support_xa来解决。

binlog-do-db:设置记录哪些库的日志

binlog-ignore-db:设置不记录哪些库的日志

log-slave-update:如果搭建master=>slave=>slave架构,则设置该参数实现从master获取二进制日志文件写入自己的二进制日志文件中。

binlog_format:设置二进制日志文件的格式。可以取值:statement、row、mixed。如果设置为statement,二进制文件记录的格式是sql语句;如果设置为row,记录的是表的行更改情况;如果设置为mixed,则默认采用statement模式,特殊情况下采用row。如果设置为row,会对磁盘空间要求有一定的增加,并且由于复制是采用传输二进制日志的方式实现的,因此复制的网络开销也会相应增加。

pid文件

mysql实例启动后,会将自己的进程ID记录到一个文件中。通过以下命令查看文件地址:

show variables like ‘pid_file’\G;

表结构定义文件

每张表都会对应一个frm后缀的文件,里面存储库表的结构定义信息。

InnoDB存储引擎文件

InnoDB存储引擎文件包括:表空间文件和重做日志文件

InnoDB采用将存储的数据按表空间进行存放的设计,默认有个初始大小10MB的ibdata1的表空间文件。可以通过innodb_data_file_path设置。

也可以设置每张表一个表空间,设置参数innodb_file_per_table来实现。

在默认情况下,数据库目录下会有名为ib_logfile0和ib_logfile1的两个文件,这俩文件就是重做日志文件。当实例或介质失败时,重做日志文件就可以起作用了。例如断电导致数据库实例失败,可以通过重做日志恢复到断电前。

参数innodb_flush_log_at_trx_commit可以取值0、1、2

0代表当提交事务时,并不将事务的的重做日志写入磁盘的日志文件,而是等待主线程每秒的刷新;

1表示在执行commit时将重做日志缓冲同步写到磁盘

2表示将重做日志异步写到磁盘,写到文件系统的缓存中。

因此如果保证数据库的ACID特性,需要设置innodb_flush_log_at_trx_commit=1。

MySql各种文件及参数的更多相关文章

  1. 【查阅】mysql配置文件/参数文件重要参数笔录(my.cnf)

    持续更新,积累自己对参数的理解 [1]my.cnf参数 [client]port = 3306socket = /mysql/data/3306/mysql.sockdefault-character ...

  2. 为MySQL的source命令导入SQL文件配置参数

    为MySQL的source命令导入SQL文件配置参数 执行 mysql -uroot -p 输入密码后进入 MySQL 命令提示符 set charset utf8; source /root/xxx ...

  3. paip.提升性能---mysql 性能 测试以及 参数调整.txt

    paip.提升性能---mysql 性能 测试以及 参数调整.txt 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://b ...

  4. 数据库相关文章转载(1) MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  5. lnmp vps服务器删除mysql日志文件三种方法

    我在上一篇文章介绍了著名的LNMP主机一键安装工具,对比了军哥lnmp和AMH主机的差别,由于AMH拥有用户后台界面,易于新手操作,值得推荐. 但是,上周末我网站宕机,收到DNSPOD发来了宕机提醒, ...

  6. MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

  7. MySQL优化二 缓存参数优化

    数据库属于 IO密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数 ...

  8. Windows下MYSQL读取文件为NULL

    只记录解决问题的方法. mysql 版本: 5.7.18 问题: 在执行mysql 函数load_file时,该函数将加载指定文件的内容,存储至相应字段.如: SELECT LOAD_FILE(&qu ...

  9. RHEL 6.4 通过mysql安装文件安装mysql

    参考文章:http://www.linuxidc.com/Linux/2013-12/93507.htm 1.首先下载mysql安装文件 我是下载的最新版的5.6 2. 以RPM方式安装MySQL 在 ...

随机推荐

  1. 解决使用tomcat服务器发布web项目时出现URL中文乱码的问题

    打开Tomcat的安装路径 打开server.xml文件 在修改端口号的一行既是下图中位置添加 URIEncoding="UTF-8" 就能替换在用eclipse或者myeclip ...

  2. 我爬取交通学博士付费的GIS资源,每年被动收入2w很简单?

    目录 1.背景介绍 2.技术路线 3.数据结果 4.数据分析 5.总结 6.后记 1.背景介绍 某周末闲来无事,顺手打开了CSDN,看到了一个人发布的收费GIS资源,售价是¥19.9,POI数据也有人 ...

  3. win10环境charles抓包unknow问题

    win10环境,charles已经安装了证书,但是抓包的时候还是unknow,让人头疼. 1.确保证书安装成功. 2.检查charles设置是否正确. 进入Charles - > Proxy - ...

  4. SQL-关联查询【转】

    T_A A表 T_B B标,id为表与表相关联的字段`创建相关表结构 CREATE TABLE Table_B( id INT(2), serNum VARCHAR(10) ); CREATE TAB ...

  5. P5782-[POI2001]和平委员会【2-SAT】

    正题 题目链接:https://www.luogu.com.cn/problem/P5782 题目大意 \(n\)对人,每对之间恰好有一个人出席.\(m\)对仇恨关系表示两个人不能同时出席. 求是否有 ...

  6. Douban Top 250爬虫

    # Ref: https://fishc.com.cn/forum.php?mod=viewthread&tid=101887&extra=page%3D1%26filter%3Dty ...

  7. 屏幕截图小工具的制作过程问题记录 python PIL pynput pyautogui pyscreeze

    最近想做一个脚本小工具,方便写一些操作说明文档,它的功能很简单,就是把脚本打开之后,鼠标进行操作点击时,会在点击后进行截图,并在图上标记出点击的位置,有点类似于录屏软件的图片版,这样的话,如果要想用文 ...

  8. mysql从零开始之MySQL 管理

    MySQL 管理 启动及关闭 MySQL 服务器 Windows 系统下 在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录. 启动: cd c:/mysq ...

  9. NER为什么那么难

    命名实体识别(Name Entity Recognition) 是自然语言处理中一个比较基础的问题.要解决的问题是,从unstructure的文本当中找到实体并归类.当然我这么定义已经有了一定的bia ...

  10. C#开发BIMFACE系列42 服务端API之图纸对比

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在我的前一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>中详细介绍了BIMFACE服务端接口 ...