错误日志
- 记录 MySQL 的启动、运行、关闭过程。
- 记录所有的错误信息,也记录一些警告信息或正确的信息。
- 记录有关数据库优化的警告信息
慢查询日志
慢查询会导致 CPU,IOPS,内存消耗过高。当数据库遇到性能瓶颈时,大部分时间都是由于慢查询导致的。 开启慢查询日志,可以让 MySQL 记录下查询超过指定时间的语句,之后运维人员通过定位分析,能够很好的优化数据库性能。
慢查询日志记录的慢查询不仅仅是执行比较慢的 SELECT 语句,还有 INSERT,DELETE,UPDATE,CALL 等 DML 操作,只要超过了指定时间,都可以称为”慢查询”,被记录到慢查询日志中。
默认情况下,慢查询日志是不开启的,只有手动开启了,慢查询才会被记录到慢查询日志中。
开启慢查询日志后,MySQL 数据库会记录运行时间超过 long_query_time
阈值的所有 sql 语句。
打开log_queries_not_using_indexes
后,如果执行 SQL 没有使用索引,MySQL 同样会将 SQL 语句记录到慢查询日志文件中。
查询日志
记录了所有对 MySQL 数据库请求的信息,无论这些请求是否得到了正确的执行,默认文件名为:“主机名.log”,记录包括访问拒绝的请求。
查询日志在 MySQL 中被称为 general log(通用日志),查询日志里的内容不要被“查询日志”误导,认为里面只存储 select 语句,其实不然,查询日志里面记录了数据库执行的所有命令,不管语句是否正确,都会被记录,默认文件名为:“主机名.log”,记录包括访问拒绝的请求。具体原因如下:
- insert 为了避免数据冲突需要首先查询。如果此前插入过数据,当前插入的数据如果跟主键或唯一键的数据重复那肯定会报错
- update 时也会查询因为更新的时候很可能会更新某一块数据
- delete 查询,只删除符合条件的数据
因此都会产生日志,在并发操作非常多的场景下,查询信息会非常多,那么如果都记录下来会导致 IO 非常大,影响 MySQL性能,因此如果不是在调试环境下,是不建议开启查询日志功能的。
查询日志的开启有助于帮助我们分析哪些语句执行密集,执行密集的 Select 语句对应的数据是否能够被缓存,同时也可以帮助我们分析问题,所以,我们可以根据自己的实际情况来决定是否开启查询日志。