是什么时候发现自己的技术栈不足的?是什么时候发现自己的编码能力还很一般?是什么时候开始觉得舒适的环境可能是一种含笑饮毒酒,外面的世界风云变幻,个人的世界世事无常,世间万事大多逃不过一个变字,一切有如法,如梦幻泡影,如露亦如电,当做如是观,也许走着走着就会发现,重要的还是自己的一颗平常心。
BB结束...
下面说说Mysql的日志
之前也说了mysql数据库,现在说的是他的日志,日志能帮助我们查找过程,也能帮我们实现数据恢复,他是一个向后看的思想,之所以之前不去了解,因为之前只顾向前,没有想失败了会怎样。
1 慢查询日志
这个日志会记录数据库中那些sql查询的慢,自己可以在配置文件中定义,超过多少秒是慢sql,这个还是十分重要的,因为在做优化的时候,就要查看数据库中哪些是慢sql
2 二进制日志(binlog归档日志)
这个日志我们可以在数据库中执行命令看是否开启
SHOW VARIABLES LIKE 'log_bin'
默认是开启的,他会在数据库执行过程中记录数据库的数据保存成一个二进制文件binlog.index,如果使用读写分离,还可以从主库保存日志更新从库也就是salve库,最重要的是他能够执行还原数据的操作,命令
mysqlbinlog --start-date="2019-07-04 18:00:00" --stop-date="2019-07-04 18:10:00" binlog.000003 |mysql -uroot -pmysqltao
3 错误日志
这个理解起来就是比较简单了,比如插入报错,查询报错,就会写入到这个日志文件
4 redo log(事务日志)
这个日志也有二进制的功能,也就是恢复数据,但是他存储的更精简一些
和二进制日志的区别
1)二进制日志是逻辑保存,事务日志记录的是数据库中每一个页的修改
2)二进制日志是在引擎的上一层执行的,也就是不管是什么引擎都会执行,而redo日志是属于innodb的
3)事务日志写入的文件更少,体现在他是通过数据库页保存,一个页中可能对一条数据进行修改又改回来,事务日志只会保存一行,而二进制日志就要保存两行。
5 undo 日志
这个日志是回滚日志,如果数据库删除一条数据,那么他就会记录新增一条记录,版本还原的时候就特别好用了。