mysql之文件

 

前言

mysql这块,是阅读了《MySQL技术内幕:InnoDB存储引擎(第2版)》,再参照一些博文整理的阅读笔记。

概述

数据库系统和文件系统在特点上是有很大区别的,但数据库系统是在文件系统的基础上发展起来的,它对数据的管理更有效应。我们应该去了解数据库的各种类型的文件。下面的说明限于mysql和innodb存储引擎,其它数据库或引擎可能有不小的区别。主要可以分为下面几类

  • 参数文件
  • 日志文件
  • socket文件
  • pid文件
  • mysql表结构文件
  • innodb存储引擎文件

参数文件

my.cnf是我们经常会去修改的文件,修改配置可以让mysql更好地为我们提供服务。

mysql启动时会去启动my.cnf文件,可以通过mysql --help | grep my.cnf查看读取顺序,读取的是他们的并集,如果配置项有冲突的话,会以最后一个一个配置文件为准

/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

根据使用配置上的不同,我们可以分为

  • 静态参数,即只能在配置文件中修改,而不能在运行时修改
  • 动态参数,在运行时可以修改,通过 SET [global|session] key=value的方法设置全局的或者会话级别的

我们可能通过SHOW VARIABLES key来查看对应的值,动态参数在数据库重启后是会失效的,因为重启会去读取配置文件。

日志文件

日志文件记录了各种影响数据库的活动,可以帮助我们对数据库进行诊断,从而更好地进行优化。

常用的日志文件有:

    •   错误日志
    •   慢查询日志
    •   查询日志
    •   二进制日志

下面对这些日志进行分析

  • 错误日志
    • 该日志记录了数据库在启动、运行、关闭时的所有错误信息和部分警告、正确信息
    • 我们可以修改配置:log_error=/var/log/mysqld.log(默认记录在data/主机名.error文件中)
    • 如果数据库启动没有成功,我们可以去配置文件中找到相应的错误日志目录,再对日志进行分析。如果启动成功,可能通过SHOW VARIABLES LIKE 'log-error'找到文件进行分析
  • 慢查询日志
    • 该日志记录了超过了运行阈值时间的SQL,从而进行SQL语句层面的优化
    • 我们可以设置:slow_query_log=1(0表示不开启,1表示开始,默认不开启),long_query_time=long_query_time(设置阈值时间,Mysql5.1后,以微秒为时间单位),log_queries_not_using_indexes=1(是否记录未使用查询,0表示不记录,1表示记录)
    • SHOW VARIABLES LIKE 'slow_query_log_file',我们可以找到慢查询日志文件进行分析
    • 除了文件,也可以通过表的方法进行记录,便于查询和分析
  • 查询日志
    • 该日志记录了对mysql数据库请求的信息、查询
    • 我们可以设置:general_log=1(0表示不开启,1表示开始,默认不开户),log_output=FILE,TABLE(设置通用日志的输出格式为文件和表)
    • SHOW VARIABLES LIKE 'general_log_file'',我们可以找到慢查询日志文件进行分析
  • 二进制日志
    • 该日志记录了对mysql数据库进行更改了所有操作(包括修改操作但没有影响数据库的操作)
    • 我们可以设置:server-id = 1(集群中节点id),log-bin = binlog(文件名,默认在dataDir下),log-bin-index = binlog.index(二进制的索引文件)
    • SHOW VARIABLES LIKE 'log_bin',我们可以找到慢查询日志文件进行分析
    • 这里配置比较多,max_binlog_size->单个配置文件最大大小,binlog_cache_size->单个事务的缓存大小,innodb_support_xa保证二进行日志与存储引擎同步,log_salve_update把master的二进制文件写到自己(slave)的二进制文件中
    • bin_format有三种格式,STATEMENT记录的是逻辑语句(5.1以前基于这种格式会存在主从不一致的问题),ROW会记录表行的更改情况,MIX复合模式。
    • 用mysqlbinlog查看二进制文件

套接字文件

mysql提供TCP/IP和socket两种方式,mysql.sock文件就是用于本地socket连接使用。SHOW VARIABLES LIKE 'socket',查看文件路径。

pid文件

数据库实例启动,会把自己的进程id写入到这个文件。

SHOW VARIABLES LIKE 'pid_file',查看文件路径。

表结构定义文件

 

        

参考链接

 

转载于:https://www.cnblogs.com/lucas2/p/9362057.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值