<span>mysql日志详解</span>

日志分类:

一、错误日志。

   1、在配置文件中的配置是:log-error="DESKTOP-igoodful.err",查看参数的键值对:show variables like 'log_error';

二、二进制日志。

   1、记录了对数据库执行更改的所有操作,当然不包含select和show的操作。作用有两个:恢复和复制。

   2、二进制日志开关。my.ini配置文件中的配置:log_bin=ON。二进制日志文件默认不开启。开启这个功能大概降低mysql性能的1%,但是提供了恢复和复制功能,值得。也可以直接配置log-bin这个键值对就可以开启二进制日志功能。

   3、二进制日志文件名。log-bin=D:\MySQL\Data\igoodfulBinaryLog。其中D:\MySQL\Data路径为全局变量datadir的值,且该日志文件只能在datadir路径下面。这里设置的二进制文件名为igoodfulBinaryLog,服务器生成的第一个二进制日志文件为igoodfulBinaryLog.000001,以后依次递增,同时在该路径下面还会产生igoodfulBinaryLog.index文件来记录所有二进制日志文件名的全路径名。每次启动mysql服务都会生成一个二进制日志文件。如下图:

 

   4、配置二进制日志文件的记录格式。my.ini配置文件中的配置:binlog-format=row/statement/mixed。基于行/语句/两者的混合。默认值是statement,建议mixed。statement形式则记录的是逻辑sql语句,而row则是以行记录,mixed则是两者的混合。

   5、配置二进制日志文件大小的最大值。my.ini配置文件中的配置:max_binlog_size=512M。单位可以为K/M/G。查看:show variables like 'max_binlog_size';当二进制文件的大小达到这个最大值后会自动新建下一个二进制文件。限制单个二进制文件的大小。当记录的日志文件大小达到最大值后会新建一个日志文件;当重启mysql服务时也会新建一个日志;当运行flush logs也会新建一个日志文件。

 

   6、二进制日志文件自动逾期清除功能。my.ini配置文件中的配置:expire_logs_days=2;

   7、二进制日志文件的查看。mysqlbinlog  D:\MySQL\Data\igoodfulBinaryLog.000180 > a.txt

   8、记录了对数据库执行更改的所有操作,当然不包含select和show的操作。

   9、显示服务器的所有二进制文件名。show binary logs;

 

   10、

三、慢查询日志。

   1、慢查询开关。my.ini配置文件中的配置:slow-query-log=1

   1、慢查询时间限定。my.ini配置文件中的配置:long_query_time=10。查看参数:show variables like '%long_query_time%';

   2、没有索引的SQL是否记录。my.ini配置文件中的配置:log_queries_not_using_indexes=1。查看参数:show variables like '%log_queries_not_using_indexes%'

四、查询日志。

   1、记录了所有对mysql数据库请求的信息,不论这些请求的执行是否正确。

   2、查询日志开关。my.ini配置文件中的配置:general-log=1

   3、查询日志文件名。my.ini配置文件中的配置:general_log_file="DESKTOP-igoodful.log"。

五、pid文件。

   1、mysql服务的进程pid文件名。my.ini配置文件中的配置:pid_file=D:\MySQL\Data\igoodful.pid

六、表结构定义文件。

   1、任何存储引擎中的一个表都有一个以frm结尾的表结构定义文件,该文件记录了表的结构。

 

七、重做日志文件。事务机制根源

   1、记录了针对innodb存储引擎的事务日志。

   2、重做日志文件存放位置。my.ini配置文件中的配置为:innodb_log_group_home_dir=D:\MySQL\Data。默认值为datadir全局变量代表的路径。

   2、文件名。有两个文件,分别是ib_logfile0和ib_logfile1。路径都是在datadir全局变量代表的路径。

   3、重做日志文件大小。my.ini配置文件中的配置为:innodb_log_file_size=512M。如下面第5后面的图所示。

   4、重做日志文件组的数量。默认为1,表示只有一个租

   5、一个重做日志文件组中的重做日志文件的数量。my.ini配置文件中的配置为:innodb_log_files_in_group=3。默认值为2。如下为设置成3,表示三个文件。从0开始自增。

 

   6、

八、表空间文件。(存放表的数据、索引、插入缓存信息、表的内部数据字典,其余信息放在默认表空间中)(针对innodb存储引擎)

   1、独立表空间配置,即每个表一个独立的表空间,文件名=表名+ibd后缀,如user表,则user表的表空间文件名为user.ibd。my.ini配置文件中的配置:innodb_file_per_table=1。因此,任何一个表的信息存放在frm文件ibd文件ibdata1文件中。

   2、innodb存储引擎有一个共享表空间文件。文件名是ibdata1。如果不设置innodb_file_per_table=1,则所有数据都会放在该文件。设置后就分担一部分数据到各自的ibd文件中去。就算启用了innodb_file_per_table=1,该文件还是不断地增加。

 

   3、表空间结构图如下。一个表空间由分散的页和段组成,比如数据段,索引段、回滚段等,有的对象是由页组成;一个区由64个连续的页组成,一个页大小为16KB,即一个区为1M。innodb存储引擎每次最多能够申请到4个区。启用了innodb_file_per_table=1时,新建的一个表,如果不存放任何数据进去,那么该表的表空间文件(表名.ibd文件)默认大小是96K。因此空表看该文件大小是不是96K就可以判断。而在每个段开始位置处有32个页大小的碎片页来存放数据。只有当这些页使用完后才是64个连续页的申请,即1M的申请。innodb的页大小不可更改,只能是16KB大小。常见的页类型有数据页,事务数据页、系统页,undo页,插入缓冲位图页,插入缓冲空闲列表页,压缩的二进制大对象页,未压缩的二进制大对象页。行,数据库是面向行的,数据是按照按行来存储的,每一页存放的行是有限制的,最多能够存放16KB/2 - 200=7992行。一个页保存的是一行一行的记录。

 

   4、

七、表空间文件。

七、表空间文件。

七、表空间文件。

七、表空间文件。

七、表空间文件。

全部评论

相关推荐

06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务