国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 数据库 > 数据库应用 > MySQL文件

MySQL文件

来源:程序员人生   发布时间:2014-12-08 08:43:55 阅读次数:2713次
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数据库的各种类型活动。以下配置文件的参数影响2进制日志记录的信息和行动:max_binlog_size、binlog_cache_size、sync_binlog、binlog-do-db、binlog-ignore-db、log-slave-update、binlog_format。这些参数的含义是甚么,我会在以后的博客中有1篇专门来说解参数,这里就不多说啦。常见的日志文件有:
        a.毛病日志(error log)
            记录了MySQL的启动、关闭、运行进程。在遇到问题时应当首先查看该文件以便于定位问题。该文件不但记录了所有的毛病信息,也记录1些正告信息或正确的信息。通过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版本新增1个参数log_throttle_queries_not_using_indexes来设置每分钟记录到slow log的且未使用索引的SQL语句的次数(主要是为了频繁记录避免slow log文件不断增大)。
                3.通过参数long_query_io指定将超过设置逻辑IO次数的SQL语句记录到slow log文件中。
        c.2进制日志(binlog)
            记录了对MySQL数据库履行IUD操作。其作用主要有以下几种:
                1.恢复(recovery) 某些数据的恢复需要2进制日志.如,在1个数据库全备文件恢复后,用户可以通过2进制日志进行point-in-time的恢复
                2.复制(replication) 主要用在master-slave上。
                3.审计(audit) 通过2进制日志中的信息来进行审计,判定是不是有对数据库进行注入的攻击。
        d.查询日志(log)
            记录了所有对MySQL数据库要求的信息,不管这些要求是不是得到正确的履行。默许文件名为主机名.log。从MySQL5.1版本开始也能够将该日志记录到information_chema.general_log表中。
3.套接字文件
    在unix下本地连接MySQL可以采取unix域套接字方式,这类方式需要1个套接字(socket)文件。套接字文件可有参数socket控制1般在/tmp目录下且名称为mysql.sock。
4.pid文件
    当MySQL实例启动是,会将自己的进程ID写入1个文件中(pid文件)。该文件可有参数pid_file控制,默许位于数据库目录下,文件文件名为主机名.pid.
5.表结构定义文件
    MySQL数据的存储是根据表进行的,每一个表都会有与之对应的文件。不论表采取何种存储引擎,MySQL都有1个以.frm为后缀名的文件,这个文件记录了该表的表结构定义。
6.InnoDB存储引擎文件
    上边介绍的文件都是MySQL数据库本身的文件,和存储引擎无关。除这些文件以外,每一个表存储引擎还有其自己独有的文件。与InnoDB存储引擎密切相干的文件包括重做日志文件(redo log)和表空间文件(tablespace)。
    1.表空间文件
        InnoDB采取将存储的数据按表空间进行寄存。默许配置下会有1个初始大小为10M名为ibdata1的文件。该文件就是默许的表空间文件,可通过参数innodb_data_file_path对其进行设置。默许情况下InnoDB存储引擎的表的数据都会记录到该同享表空间中,但是可以通过参数innodb_file_per_table设置,为每一个基于InnoDB存储引擎的表产生1个独立表空间。该独立表空间只是存储该表的数据、索引和插入缓冲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


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生