默认情况下,如果日志没有配置,则只记录错误日志,记录到syslog,配置文件 /etc/mysql/conf.d/mysqld_safe_syslog.cnf (ubuntu下)

[mysqld_safe]
syslog

移除 /etc/mysql/conf.d/mysqld_safe_syslog.cnf ,然后在 /etc/mysql/my.cnf 添加相关配置

MySQL有多种类型的日志:Error Log、General Query Log、Binary Log 、Slow Query Log、Relay log(slave server还有undo log/redo log 来实现事务

查看服务器中有哪些日志

[root@dev ~]# lsof -nc mysqld | grep -vE '(.so(..*)?$|.frm|.MY?|.ibd|ib_logfile|ibdata|TCP)'
mysqld_sa 25638 root cwd DIR 8,2 4096 2 /
mysqld_sa 25638 root rtd DIR 8,2 4096 2 /
mysqld_sa 25638 root txt REG 8,2 941720 3145826 /bin/bash
mysqld_sa 25638 root mem REG 8,2 99158576 4198587 /usr/lib/locale/locale-archive
mysqld_sa 25638 root mem REG 8,2 26060 4197707 /usr/lib64/gconv/gconv-modules.cache
mysqld_sa 25638 root 0r CHR 1,3 0t0 3857 /dev/null
mysqld_sa 25638 root 1w CHR 1,3 0t0 3857 /dev/null
mysqld_sa 25638 root 2w CHR 1,3 0t0 3857 /dev/null
mysqld_sa 25638 root 255r REG 8,2 24632 4210700 /usr/bin/mysqld_safe
mysqld 26379 mysql cwd DIR 8,2 4096 3932444 /var/lib/mysql
mysqld 26379 mysql rtd DIR 8,2 4096 2 /
mysqld 26379 mysql txt REG 8,2 10438848 4207116 /usr/libexec/mysqld
mysqld 26379 mysql 0r CHR 1,3 0t0 3857 /dev/null
mysqld 26379 mysql 1w REG 8,2 10234 937095 /data/logs/mysql/mysql_error.log
mysqld 26379 mysql 2w REG 8,2 10234 937095 /data/logs/mysql/mysql_error.log
mysqld 26379 mysql 3u REG 8,2 132 937139 /data/logs/mysql/binarylog/mysql_bin.index
mysqld 26379 mysql 6u REG 8,2 0 1048581 /tmp/ibzlBDfl (deleted)
mysqld 26379 mysql 7u REG 8,2 0 1048582 /tmp/ib48cnZp (deleted)
mysqld 26379 mysql 8u REG 8,2 0 1048583 /tmp/ibidAZvz (deleted)
mysqld 26379 mysql 11w REG 8,2 2618 937140 /data/logs/mysql/slow_query.log
mysqld 26379 mysql 12u REG 8,2 0 1048584 /tmp/ibpL9bkE (deleted)
mysqld 26379 mysql 13w REG 8,2 8059 937141 /data/logs/mysql/general_log.log
mysqld 26379 mysql 15w REG 8,2 425 937145 /data/logs/mysql/binarylog/mysql_bin.000003

通过PID来查看

[root@dev ~]# sudo lsof -p 26379 | grep -vE '(.so(..*)?$)'
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 26379 mysql cwd DIR 8,2 4096 3932444 /var/lib/mysql
mysqld 26379 mysql rtd DIR 8,2 4096 2 /
mysqld 26379 mysql txt REG 8,2 10438848 4207116 /usr/libexec/mysqld
mysqld 26379 mysql 0r CHR 1,3 0t0 3857 /dev/null
mysqld 26379 mysql 1w REG 8,2 10234 937095 /data/logs/mysql/mysql_error.log
mysqld 26379 mysql 2w REG 8,2 10234 937095 /data/logs/mysql/mysql_error.log
mysqld 26379 mysql 3u REG 8,2 132 937139 /data/logs/mysql/binarylog/mysql_bin.index
mysqld 26379 mysql 4uW REG 8,2 446693376 3933686 /var/lib/mysql/ibdata1
mysqld 26379 mysql 5u REG 8,2 0 1048580 /tmp/ibM08Tvg (deleted)
mysqld 26379 mysql 6u REG 8,2 0 1048581 /tmp/ibzlBDfl (deleted)
mysqld 26379 mysql 7u REG 8,2 0 1048582 /tmp/ib48cnZp (deleted)
mysqld 26379 mysql 8u REG 8,2 0 1048583 /tmp/ibidAZvz (deleted)
mysqld 26379 mysql 9uW REG 8,2 67108864 3933687 /var/lib/mysql/ib_logfile0
mysqld 26379 mysql 10uW REG 8,2 67108864 3933688 /var/lib/mysql/ib_logfile1
mysqld 26379 mysql 11w REG 8,2 2618 937140 /data/logs/mysql/slow_query.log
mysqld 26379 mysql 12u REG 8,2 0 1048584 /tmp/ibpL9bkE (deleted)
mysqld 26379 mysql 13w REG 8,2 8059 937141 /data/logs/mysql/general_log.log
mysqld 26379 mysql 14u IPv4 373448 0t0 TCP *:mysql (LISTEN)
mysqld 26379 mysql 15w REG 8,2 425 937145 /data/logs/mysql/binarylog/mysql_bin.000003
mysqld 26379 mysql 17u REG 8,2 2048 3933369 /var/lib/mysql/mysql/host.MYI
mysqld 26379 mysql 18u REG 8,2 0 3933385 /var/lib/mysql/mysql/host.MYD
mysqld 26379 mysql 19u REG 8,2 2048 3933388 /var/lib/mysql/mysql/user.MYI
mysqld 26379 mysql 20u REG 8,2 828 3933421 /var/lib/mysql/mysql/user.MYD
mysqld 26379 mysql 21u REG 8,2 5120 3932436 /var/lib/mysql/mysql/db.MYI
mysqld 26379 mysql 22u REG 8,2 2640 3932437 /var/lib/mysql/mysql/db.MYD
mysqld 26379 mysql 23u REG 8,2 5120 3933682 /var/lib/mysql/mysql/proxies_priv.MYI
mysqld 26379 mysql 24u REG 8,2 1386 3933683 /var/lib/mysql/mysql/proxies_priv.MYD
mysqld 26379 mysql 25u REG 8,2 4096 3933612 /var/lib/mysql/mysql/tables_priv.MYI
mysqld 26379 mysql 26u REG 8,2 0 3933613 /var/lib/mysql/mysql/tables_priv.MYD
mysqld 26379 mysql 27u REG 8,2 4096 3933615 /var/lib/mysql/mysql/columns_priv.MYI
mysqld 26379 mysql 28u REG 8,2 0 3933616 /var/lib/mysql/mysql/columns_priv.MYD
mysqld 26379 mysql 29u REG 8,2 4096 3933648 /var/lib/mysql/mysql/procs_priv.MYI
mysqld 26379 mysql 30u REG 8,2 0 3933649 /var/lib/mysql/mysql/procs_priv.MYD
mysqld 26379 mysql 31u REG 8,2 1024 3933609 /var/lib/mysql/mysql/servers.MYI
mysqld 26379 mysql 32u REG 8,2 0 3933610 /var/lib/mysql/mysql/servers.MYD
mysqld 26379 mysql 33u REG 8,2 4096 3933657 /var/lib/mysql/mysql/event.MYI
mysqld 26379 mysql 34u REG 8,2 168 3933658 /var/lib/mysql/mysql/event.MYD
mysqld 26379 mysql 35u IPv4 374008 0t0 TCP localhost:mysql->localhost:51908 (ESTABLISHED)
mysqld 26379 mysql 44u IPv4 374010 0t0 TCP localhost:mysql->localhost:51913 (ESTABLISHED)
mysqld 26379 mysql 45u IPv4 374011 0t0 TCP localhost:mysql->localhost:51918 (ESTABLISHED)
mysqld 26379 mysql 46u IPv4 374014 0t0 TCP localhost:mysql->localhost:51920 (ESTABLISHED)
mysqld 26379 mysql 47u IPv4 374062 0t0 TCP localhost:mysql->localhost:54839 (ESTABLISHED)
mysqld 26379 mysql 50u REG 8,2 4096 3933645 /var/lib/mysql/mysql/proc.MYI
mysqld 26379 mysql 51u REG 8,2 212 3933646 /var/lib/mysql/mysql/proc.MYD

一、错误日志

默认情况下查询日志是开启的

它记录的事件有:

1、服务器启动和关闭过程中的信息

2、服务器运行过程中的错误信息

3、事件调度器运行一个事件时产生的信息

4、(如果被配置为从服务器)启动从服务器进程时产生的信息

配置

//log-error[=FILENAME/PATH_TO_FILENAME] Static
//log-warnings[=NUMERIC_VALUE] Dynamic [mysqld_safe] log_error=/data/logs/mysql/mysql_error.log
[mysqld] log_error=/data/logs/mysql/mysql_error.log

配置选项


  • log-warnings | skip-log-warnings
  • syslog | skip-syslog

作用范围为全局或会话级别,可用于配置文件,属非动态变量

二、查询日志

默认情况下查询日志是关闭的。

调试的时候可以开启,一般情况下不要开启,查询日志会增加很多磁盘 I/O

配置

//general-log[={0,1}] Dynamic
//general_log_file[=FILENAME] Dynamic
//log-output=PATH_TO_FILE/TABLE/NONE Dynamic log-output=FILE
general_log=ON
general_log_file=/data/logs/mysql/general_log.log
动态修改
mysql> SET GLOBAL general_log = 'ON';
mysql> SET GLOBAL general_log = 'OFF';

远程调试 (log-output=TABLE)

mysql> SHOW CREATE TABLE mysql.general_log \G
*************************** 1. row ***************************
Table: general_log
Create Table: CREATE TABLE `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
1 row in set (0.01 sec) mysql> SHOW CREATE TABLE mysql.slow_log \G
*************************** 1. row ***************************
Table: slow_log
Create Table: CREATE TABLE `slow_log` (
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`query_time` time NOT NULL,
`lock_time` time NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
`db` varchar(512) NOT NULL,
`last_insert_id` int(11) NOT NULL,
`insert_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
1 row in set (0.01 sec)

针对 general_log and slow_query_log

三、慢查询日志

默认情况下查询日志是关闭的

慢查询是指执行时长(包括等待CPU/IO的时间)超过 long_query_time 这个变量定义的时长的查询

开销比较小,可以用于定位性能问题,建议开启

配置

//slow-query-log[={0,1}] Dynamic
//slow_query_log_file[=FILENAME] Dynamic
//log-output=PATH_TO_FILE/TABLE/NONE Dynamic
//log-slow-admin-statements[={OFF,ON}]
//log-queries-not-using-indexes[={OFF,ON}] Dynamic
//log-slow-slave-statements[={OFF,ON}] slave
//log-short-format[={FALSE,TRUE}]
//long_query_time[=NUMERIC] Dynamic
//min-examined-row-limit[=NUMERIC] Dynamic long_query_time = 2
slow-query-log = on
slow-query-log-file = /data/logs/mysql/slow_query.log
log-queries-not-using-indexes
log-output=FILE

动态修改

mysql> SET GLOBAL slow_query_log = 'ON';
mysql> SET GLOBAL slow_query_log = 'OFF';

远程调试 (log-output=TABLE) 同上

关闭慢查询日志

log-output=NONE
log_slow_queries=0

日志分析

mysqldumpslow / mysqlsla / myprofi / mysql-explain-slow-log / mysqllogfilter

这里我使用 pt-query-digest (percona toolkit)

# 390ms USER TIME, 10ms system TIME, 15.67M rss, 105.84M vsz
# CURRENT DATE: Thu DEC 29 13:22:42 2014
# Hostname: test
# Files: slow.log
# Overall: 776 total, 11 UNIQUE, 0.00 QPS, 0.00x concurrency _____________
# TIME range: 2014-09-10 04:03:19 TO 2014-12-29 05:02:51
# Attribute total MIN MAX avg 95% stddev median
# ============ ======= ======= ======= ======= ======= ======= =======
# EXEC TIME 5657s 2s 33s 7s 23s 6s 5s
# LOCK TIME 33s 0 19s 43ms 98us 715ms 38us
# ROWS sent 323.38k 0 107.36k 426.73 0.99 6.35k 0
# ROWS examine 323.39k 0 107.36k 426.74 0 6.35k 0
# Query SIZE 217.95k 38 562 287.61 420.77 81.78 284.79

详细介绍 http://dev.mysql.com/doc/refman/5.1/en/log-destinations.html

四、二进制日志

默认没有开启

二进制日志记录 MySQL 数据库中所有与更新相关的操作,即二进制日志记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。

最重要的两个用途 :恢复数据库和主从复制

配置

http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html

binlog_format=mixed
max_binlog_size=1024M
log_bin=/data/logs/mysql/binarylog/mysql_bin
expire_logs_days=0
binlog_cache_size = 2M
max_binlog_cache_size = 4M

log-bin-index 指向 master-bin 这个文件,记录有哪些分块的Binlog文件名。

log-bin 记录Binlog文件名前缀,后缀会用数字递增

Binlog有3种格式,STATMENT,ROW,MIXED,混合格式(mixed)会在适当时候切换row和statment格式

https://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html

mysql> SHOW VARIABLES LIKE 'log_bin%';
+---------------------------------+--------------------------------------------+
| Variable_name | Value |
+---------------------------------+--------------------------------------------+
| log_bin | ON |
| log_bin_basename | /data/logs/mysql/binarylog/mysql_bin |
| log_bin_index | /data/logs/mysql/binarylog/mysql_bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+--------------------------------------------+ mysql> show variables like '%binlog%';
+-----------------------------------------+----------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------+
| binlog_cache_size | 32768 |
| binlog_checksum | CRC32 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_error_action | IGNORE_ERROR |
| binlog_format | MIXED |
| binlog_gtid_simple_recovery | OFF |
| binlog_max_flush_queue_time | 0 |
| binlog_order_commits | ON |
| binlog_row_image | FULL |
| binlog_rows_query_log_events | OFF |
| binlog_stmt_cache_size | 32768 |
| binlogging_impossible_mode | IGNORE_ERROR |
| innodb_api_enable_binlog | OFF |
| innodb_locks_unsafe_for_binlog | OFF |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 209715200 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| simplified_binlog_gtid_recovery | OFF |
| sync_binlog | 0 |
+-----------------------------------------+----------------------+

查看命令

mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql_bin.000001 | 167 |
| mysql_bin.000002 | 167 |
| mysql_bin.000003 | 167 |
| mysql_bin.000004 | 167 |
| mysql_bin.000005 | 2606 |
| mysql_bin.000006 | 143 |
| mysql_bin.000007 | 143 |
| mysql_bin.000008 | 143 |
| mysql_bin.000009 | 143 |
| mysql_bin.000010 | 143 |
| mysql_bin.000011 | 143 |
| mysql_bin.000012 | 143 |
| mysql_bin.000013 | 120 |
| mysql_bin.000014 | 120 |
+------------------+-----------+
14 rows in set (0.14 sec) mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000014 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec) mysql> show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql_bin.000001 | 4 | Format_desc | 1 | 120 | Server ver: 5.6.25-log, Binlog ver: 4 |
| mysql_bin.000001 | 120 | Rotate | 1 | 167 | mysql_bin.000002;pos=4 |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+

分析日志

[root@localhost binarylog]# mysqlbinlog   --no-defaults mysql_bin.000005
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#151019 21:26:05 server id 1 end_log_pos 120 CRC32 0x001e6758 Start: binlog v 4, server v 5.6.25-log created 151019 21:26:05
BINLOG ' //at 4 偏移值
//事件的日期事件,MySQL会使用他们来产生SET TIMESTAMP
//服务器的服务器id
//end_log_pos 下一个事件的偏移字节
//事件类型,这里是Xid,常见的还有其他,例如:Intvar,Query,Stop,Format_desc
//原服务器上执行语句的线程id,用于审计和CONNECTION_ID()
//exec_time对于master端的Binlog来说是执行这个event所花费的时间
//原服务器产生的错误代码

二进制日志实现稍微有点复杂,可以从更深层次来分析

日志导出

[root@localhost binarylog]# mysqlbinlog --start-position="120" --stop-position="332" mysql_bin.000005 | gzip >extra_01.sql.gz
[root@localhost binarylog]# mysqlbinlog --start-position="120" --stop-position="332" /mysql_bin.000005 | mysql -uroot -p
[root@localhost binarylog]# mysqlbinlog --start-datetime="2014-12-15 20:15:23" /mysql_bin.000005 --result-file=extra02.sql
[root@localhost binarylog]# mysqlbinlog --start-position="120" --stop-position="332" mysql_bin.000005 mysql_bin.000006 | more
[root@localhost binarylog]# mysqlbinlog --database=test --set-charset=utf8 mysql_bin.000005 mysql_bin.000006 >test.sql
[root@localhost binarylog]# mysqlbinlog -urobin -p -h192.168.1.116 -P3306 --stop-datetime="2014-12-15 20:30:23" --read-from-remote-server mysql_bin.000005 |more
[root@localhost binarylog]# mysqlbinlog -urobin -p -h192.168.1.177 -P3606 --read-from-remote-server -vv mysql_bin.000005 >row.sql

日志清除

//清除所有日志(不存在主从复制关系)
mysql> RESET MASTER;
//清除指定日志之前的所有日志
mysql> PURGE MASTER LOGS TO 'mysql-bin.000003';
//清除某一时间点前的所有日志
mysql> PURGE MASTER LOGS BEFORE '2015-01-01 00:00:00';
//清除 n 天前的所有日志
mysql> PURGE MASTER LOGS BEFORE CURRENT_DATE - INTERVAL 10 DAY;

五、中继日志

中继日志是一组复制在从服务器复制过程中创建的日志文件。

格式和二进制日志相同,其中包含影响数据或结构事件的记录,mysqlbinlog可用于显示其内容。它由一组的中继日志文件和包含所有中继日志文件的列表的索引文件,从主服务器的二进制日志读取然后写入到从服务器。一旦不再需要的旧中继日志文件将自动删除,没有直接的删除中继日志的机制,因为SQL线程可以负责完 成。

在下面的条件下创建新的中继日志

· 每次I/O线程启动时创建一个新的中继日志。

· 当日志被刷新时;例如,用FLUSH LOGS或 mysqladmin flush-logs

· 当当前的中继日志文件变得太大时。“太大”含义的确定方法:

o max_relay_log_size,如果max_relay_log_size > 0

o max_binlog_size,如果max_relay_log_size = 0

master.info && relay-log.info

从服务器在数据目录中另外创建两个小文件。这些状态文件默认名为主master.info和relay-log.info

1、由I/O线程更新master.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为

描述
1 文件中的行号
2 Master_Log_File
3 Read_Master_Log_Pos
4 Master_Host
5 Master_User
6 密码(不由SHOW SLAVE STATUS显示)
7 Master_Port
8 Connect_Retry
9 Master_SSL_Allowed
10 Master_SSL_CA_File
11 Master_SSL_CA_Path
12 Master_SSL_Cert
13 Master_SSL_Cipher
14 Master_SSL_Key

2、由SQL线程更新relay-log.info文件。文件中的行和SHOW SLAVE STATUS显示的列的对应关系为:

描述
1 Relay_Log_File
2 Relay_Log_Pos
3 Relay_Master_Log_File
4 Exec_Master_Log_Pos

当备份从服务器的数据时,你还应备份这两个小文件以及中继日志文件。它们用来在恢复从服务器的数据后继续进行复制。如果丢失了中继日志但仍然有relay-log.info文 件,你可以通过检查该文件来确定SQL线程已经执行的主服务器中二进制日志的程度。然后可以用Master_Log_File和Master_LOG_POS选 项执行CHANGE MASTER TO来告诉从服务器重新从该点读取二进制日志。当然,要求二进制日志仍然在主服务器上。

如果从服务器正复制LOAD DATA INFILE语句,你应也备份该目录内从服务器用于该目的的任何SQL_LOAD-*文件。从 服务器需要这些文件继续复制任何中断的LOAD DATA INFILE操作。用--slave-load-tmpdir选项来指定目录的位置。如果未指 定, 默认值为tmpdir变量的值

查看日志

SHOW RELAYLOG ['connection_name'] EVENTS
[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

六、日志切割

不要忘记了切割日志.否则日志文件将会很大

In Debian (and Debian derivatives as Ubuntu etc)

vim /etc/logrotate.d/mysql-server

其他版本,可能需要一些改变

# - I put everything in one block and added sharedscripts, so that mysql gets
# flush-logs'd only once.
# Else the binary logs would automatically increase by n times every day.
# - The error log is obsolete, messages go to syslog now.
/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
postrotate
test -x /usr/bin/mysqladmin || exit 0
# If this fails, check debian.conf!
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
# Really no mysqld or rather a missing debian-sys-maint user?
# If this occurs and is not a error please report a bug.
#if ps cax | grep -q mysqld; then
if killall -q -s0 -umysql mysqld; then
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
}

参考来源

http://tech.uc.cn/?p=716

http://howtolamp.com/lamp/mysql/5.6/log-files/

http://dev.mysql.com/doc/refman/5.1/en/error-log.html

http://dev.mysql.com/doc/refman/5.1/en/binary-log.html

http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

http://www.pontikis.net/blog/how-and-when-to-enable-mysql-logs

https://mariadb.com/kb/en/mariadb/relay-log/

http://segmentfault.com/a/1190000003072237

mysql中日志的配置与分析的更多相关文章

  1. MySQL慢日志线上问题分析及功能优化

    本文来源于数据库内核专栏. MySQL慢日志(slow log)是MySQL DBA及其他开发.运维人员需经常关注的一类信息.使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据 ...

  2. MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)

    这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下   show profile是由Jerem ...

  3. YII2中日志的配置与使用

    YII2中给我们提供了非常方便的日志组件,只需要简单配置一下就可以使用. 我们在config/web.php中配置如下: return [ //log必须在bootstrap期间就被加载,便于及时调度 ...

  4. MySQL中使用SHOW PROFILE命令分析性能的用法整理

    show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把pr ...

  5. java项目中日志的配置

    1.日志相关比较详细的介绍:https://www.cnblogs.com/tanshaoxiaoji/p/log4j_config.html 2.总结1中博客说的内容 目前市场上常用的日志有log4 ...

  6. 【MySQL】MySQL中where条件的执行分析

    1.问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语法解析.权限检 ...

  7. 通过Shell和Redis来实现集群业务中日志的实时收集分析

    http://www.linuxidc.com/Linux/2013-05/83935.htm

  8. Mysql数据库日志类型查询与配置详解

    在mysql中日志分为很多种,下面小编来给大家介绍Mysql数据库日志类型查询与使用,希望对各位同学会有所帮助 mysql常见的日志类型有五种:错误日志.二进制日志.查询日志.慢查日志和中继日志. 一 ...

  9. MySQL慢日志优化

    慢日志的性能问题 造成 I/O 和 CPU 资源消耗:慢日志通常会扫描大量非目的的数据,自然就会造成 I/O 和 CPU 的资源消耗,影响到其他业务的正常使用,有可能因为单个慢 SQL 就能拖慢整个数 ...

随机推荐

  1. Go语言之高级篇beego框架安装与使用

    一.beego框架 1.beego框架简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...

  2. [转载]设置Chrome忽略网站证书错误

    某些用户可能经常会遇到Chrome浏览器提示网站证书错误的情况,尤其是在Google升级证书检查力度之后,访问Google时已经不能在浏览器界面中忽略证书错误访问. 比如说公司的IT修改过证书就会遇到 ...

  3. 搭建MySQL高可用负载均衡集群(转)

    阅读目录 1.简介 2.基本环境 3.配置MySQL主主复制 4.中间件简述 4.1.Haproxy介绍 4.2.keepalived介绍 5.中间件的安装与配置(haproxy.keepalived ...

  4. JSTL fn:contains()函数

    fn:contains() 函数判断一个输入字符串是否包含一个指定的子串. 语法 使用 fn:contains() 函数具有以下语法: boolean contains(java.lang.Strin ...

  5. 机器学习算法与Python实践之(六)二分k均值聚类

    http://blog.csdn.net/zouxy09/article/details/17590137 机器学习算法与Python实践之(六)二分k均值聚类 zouxy09@qq.com http ...

  6. .NET MVC-去掉验证

    将@Html.ValidationMessage("sortid")代码去掉 将if (ModelState.IsValid)验证代码去掉

  7. java去除字符串后面的\0

    java去除字符串后面的\0 private String filterCode(String string) { if (string != null) { string = string.trim ...

  8. Linux 查看服务器配置

    //CPU cat /proc/cpuinfo |grep processor; //内存 free -g; //硬盘 df -h;

  9. 【Eclipse】如何在Eclipse中使用命令行?

    如何在Eclipse中使用命令行? 虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序.在两个程序中切换来切 ...

  10. Hadoop学习笔记(一)——编译安装和配置

    近期工作调动.打算补一下大数据处理的知识.可能会陆续涉及hadoop.mongodb.ddbs等. 首先Apache提供二进制的Hadoop版本号是32位的.在启动时总是有警告,所以想自己编译一遍.部 ...