码迷,mamicode.com
首页 > 数据库 > 详细

MySQL文件

时间:2014-11-28 18:20:05      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:io   ar   使用   sp   for   文件   on   数据   问题   

1.参数文件
    这是MySQL启动时需要读取的配置文件,可以通过mysql --help | grep my.cnf来查看启动时查找的顺序。这些参数的值取决于编译MySQL时指定的默认值或源代码中指定参数的默认值。可以通过show variables查看数据库中的参数,也可以通过like来过滤参数名,还可以通过information_schema.global_variables视图来查找。MySQL参数可以分为两类:
        a.静态(static)参数
            在整个实例生命周期内都不得更改,只读(read only)的。
        b.动态(dynamic)参数
            在整个实例生命周期内可以更改。通过命令SET | [global | session] system_var_name=expr | [@@global. | @@session. |@@]system_var_name=expr来改变值。其中global表示该参数是基于整个实例的生命周期的,而session是基于当前回话的。
2.日志文件
    记录了影响MySQL数据库的各种类型活动。以下配置文件的参数影响二进制日志记录的信息和行为:max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format。这些参数的含义是什么,我会在以后的博客中有一篇专门来讲解参数,这里就不多说啦。常见的日志文件有:
        a.错误日志(error log)
            记录了MySQL的启动、关闭、运行过程。在遇到问题时应该首先查看该文件以便于定位问题。该文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息。通过show variables like ‘log_error‘来定位该文件的位置。在默认情况下,错误文件的文件名为服务器的主机名。
        b.慢查询日志(slow query log)
            记录可能存在"问题"的SQL语句,从而进行SQL语句层面的优化。其格式有:FILE和TABLE(information_schema.slow_log)两种格式,可以通过参数log_output(动态参数)选择输出的格式。使用mysqldumpslow命令来查看慢日志文件的内容。被记录到该文件的几种情况:
                1.通过参数long_query_time来设置被记录到该文件的阀值。会记录运行时间超过(大于)该值的所有SQL语句。
                2.通过参数long_queries_not_using_indexes来设置将没有使用索引的SQL语句记录到慢日志文件中。MySQL5.6版本新增一个参数log_throttle_queries_not_using_indexes来设置每分钟记录到slow log的且未使用索引的SQL语句的次数(主要是为了频繁记录防止slow log文件不断增大)。
                3.通过参数long_query_io指定将超过设置逻辑IO次数的SQL语句记录到slow log文件中。
        c.二进制日志(binlog)
            记录了对MySQL数据库执行IUD操作。其作用主要有以下几种:
                1.恢复(recovery) 某些数据的恢复需要二进制日志.如,在一个数据库全备文件恢复后,用户可以通过二进制日志进行point-in-time的恢复
                2.复制(replication) 主要用在master-slave上。
                3.审计(audit) 通过二进制日志中的信息来进行审计,判定是否有对数据库进行注入的攻击。
        d.查询日志(log)
            记录了所有对MySQL数据库请求的信息,无论这些请求是否得到正确的执行。默认文件名为主机名.log。从MySQL5.1版本开始也可以将该日志记录到information_chema.general_log表中。
3.套接字文件
    在unix下本地连接MySQL可以采用unix域套接字方式,这种方式需要一个套接字(socket)文件。套接字文件可有参数socket控制一般在/tmp目录下且名称为mysql.sock。
4.pid文件
    当MySQL实例启动是,会将自己的进程ID写入一个文件中(pid文件)。该文件可有参数pid_file控制,默认位于数据库目录下,文件文件名为主机名.pid.
5.表结构定义文件
    MySQL数据的存储是根据表进行的,每个表都会有与之对应的文件。不论表采用何种存储引擎,MySQL都有一个以.frm为后缀名的文件,这个文件记录了该表的表结构定义。
6.InnoDB存储引擎文件
    上边介绍的文件都是MySQL数据库本身的文件,和存储引擎无关。除了这些文件之外,每个表存储引擎还有其自己独有的文件。与InnoDB存储引擎密切相关的文件包括重做日志文件(redo log)和表空间文件(tablespace)。
    1.表空间文件
        InnoDB采用将存储的数据按表空间进行存放。默认配置下会有一个初始大小为10M名为ibdata1的文件。该文件就是默认的表空间文件,可通过参数innodb_data_file_path对其进行设置。默认情况下InnoDB存储引擎的表的数据都会记录到该共享表空间中,但是可以通过参数innodb_file_per_table设置,为每个基于InnoDB存储引擎的表产生一个独立表空间。该独立表空间只是存储该表的数据、索引和插入缓冲BITMAP等信息,其余的信息还是存放在默认的表空间中。
    2.重做日志文件
        默认情况下在数据目录下会有两个名为ib_logfile0和ib_logfile1的文件。记录了对于InnoDB存储引擎的事务日志。当数据库宕机时,InnoDB存储引擎会使用重做日志恢复到故障之前的时刻,以此来保证数据的完整性。以下参数影响重做日志文件的属性:innodb_log_file_size、innodb_log_files_in_group、innodb_mirrored_log_groups、innodb_log_group_home_dir


MySQL文件

标签:io   ar   使用   sp   for   文件   on   数据   问题   

原文地址:http://blog.csdn.net/chenlvzhou/article/details/41577637

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!