简述MYSQL数据库文件_mysql数据库的各种类型的文件简述

1.参数文件:

1)参数

数据库参数其实就是一个键值对,比如innodb存储引擎中的innodb_buffer_pool_size,将这个参数设为1G,则键是innodb_buffer_pool_size,值为1G,一般通过show variables来查看数据库中的所有参数。

2)参数类型

mysql数据库中的参数可以分为两类,分别是动态参数(可以在mysql实例运行过程中进行修改,通过set命令进行修改,有些参数的只能在当前会话进行修改,有的参数可以在整个生命周期修改,有的参数可以既可以在整个生命周期又可以在当前会话修改生效)和静态参数(在整个实例生命周期内不得进行修改),

2.日志文件:

mysql日志文件记录了影响mysql数据库的各种类型活动,mysql数据库中常见的日志文件有:

1).错误日志:

错误日志文件对mysql的启动、运行、关闭过程进行了记录,该文件不仅记录了错误信息,还记录了一些警告信息正确信息,用户可以通过show variables like'log_error'来定位该文件,有些时候用户可以直接从错误日志文件中得到优化的帮助,因为有些警告很好的说明了问题所在,

2)慢查询日志:

慢查询日志可以直接定位到存在问题的sql语句,从而进行sql语句层面的优化,比如可以在mysql启动时设置一个阈值(通过long_query_time来设定,默认为10秒),将运行时间超过该值的所有sql语句都记录到慢查询日志中,从而可以观察到是否有sql语句可以进行优化,默认mysql数据库并不启动慢查询日志。可以通过将参数log_slow_queries设置为on来开启,另外一个参数log_queries_not_using_indexes(打开则设置为on),如果sql语句没有使用索引,也会记录到慢查询日志中,mysql5.6.5版本开始还有一个参数log_throttle_queries_not_using_indexes,用来表示每分钟允许记录到slow log的且没有使用索引的sql语句次数,默认为0,表示没有限制,从而导致slow log文件的带下不断增加,因此可以通过这个参数进行配置,

当有很多的sql语句被记录到文件中,为了是用户查看并分析该文件更加直观,使用数据库提供的mysqldumpslow命令,例如如果想要查看执行时间最长的10条语句,可以运用mysqldumpslow -s al -n 10 david.log(其中david.log是文件名),从mysql5.1开始可以将慢查询的日志记录放在一张表中,名为slow_log,通过参数log_output(动态的,并且是全局的)指定慢查询的输出方式,默认为file,设为table,则就可以查看slow_log表了,innosql版本加强了对于sql语句的捕获方式,增加了逻辑读取(包括磁盘和缓冲池)和物理读取(指从磁盘进行io读取的次数),

3)查询日志:

查询日志记录了所有对mysql数据库请求的信息,无论这些请求是否得到了执行,默认文件名为主机名.log

4) 二进制日志(binary  log):

二进制文件记录了对mysql数据库执行更改的所有操作,但是不包括select 、show这类操作 ,因为这类操作对数据本身并没有修改,如果想要记录该操作,只能使用查询日志,通过配置参数log-bin [=name]启动二进制日志,不指定name,则默认日志文件名为主机名,后缀为二进制日志的序列号,所在路径为数据库所在目录。

二进制日志主要包括以下几个作用:

恢复:例如在一个数据库全备文件恢复后,可以通过二进制日志进行point-in-time的恢复

复制:通过复制和执行二进制日志使一台远程的mysql数据库与一台mysql数据库进行实时同步。

审计:用户可以通过二进制日志中的信息进行审计,判断是否有对数据库进行注入的攻击。

以下配置文件的参数影响着二进制日志记录的信息和行为:

max_binlog_size:指定了单个二进制日志文件的最大值,如果超过该值,则产生一个新的二进制文件,后缀名+1,

binlog_cache_size:当使用事务的表存储引擎时,所有未提交的二进制日志会被记录到一个缓存中去,等该事务提交时直接将缓冲的二进制日志写入二进制日志文件,而该缓冲的大小有binlog_cache_size决定,默认为32k,而且其是基于会话的,当一个线程开始一个事务,mysql会自动分配一个大小为binlog_cache_size的缓存。

sync_binlog:默认情况下,二进制日志并不是在每次写的时候同步到磁盘,因此,当数据库所在系统发生宕机,可能会有最后一部分数据没有写入二进制日志文件中,这会给恢复和复制带来问题,参数sync_binlog=[N]表示每写缓冲多少次就同步到磁盘,n=1表示以同步写磁盘的方式来写二进制日志,默认为0

binlog-do-db和binlog-ignore-db:表示需要写入或忽略写入哪些库的日志,默认为空,表示需要同步所有库的日志到二进制日志

binlog_format:

影响记录二进制日志的格式,mysql5.1版本之前没有这个参数,所有二进制文件的格式都是基于sql语句的级别的,mysql5.1版本之后引入这个参数,其可设的值为statement(记录日志的逻辑sql语句)、row(增加记录表的行更改情况)、mixed(默认才有statement格式进行二进制日志文件的记录,在一些情况下会使用row格式).

这个参数是动态参数,可以在数据库运行环境下进行修改,设置为row,可以为数据库的回复和复制带来更好的可靠性,但是会增加二进制文件的大小,对磁盘要求会增加

要想查看二进制日志文件的内容,必须使用mysql提供的狗根据mysqlbinlog,但是这个时候采用row格式,会使得mysqlbinlog后的结果不可读,只要加上-v或 -vv就可以看到具体的执行信息了,-vv会比-v显示更新的类型,

3.套接字文件:

在unix系统下本地连接mysql可以采用unix域套接字方式,这时就需要一个套接字文件,一般在/tmp目录下,名为mysql.sock

4.pid文件:

当mysql实例启动时,会将自己的进程id写入一个文件中,即pid文件,由参数pid_file控制,默认位于数据库目录下,文件名为主机名.pid。

5.表结构定义文件:

因为mysql插件式存储引擎的体系结构的关系,mysql数据的存储是根据表进行的,每个表都有与之对应的文件,但是不管是用何种引擎,mysql都有一个以frm为后缀名的文件,记录了该表的表结构定义,frm还用来存放视图的定义,例如用户创建了一个v_a视图,对应产生一个v_a.frm文件。用来记录视图的定义。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值