您的位置:澳门皇冠金沙网站 > 办公软件 > MariaDB性能调优工具mytop的使用详解【澳门皇冠金

MariaDB性能调优工具mytop的使用详解【澳门皇冠金

2020-03-30 19:11

前言

MySQL日志类别:
一般查询日志:log,general_log,log_output
慢查询日志:查询执行的时长超过指定的查询,即为慢查询;
错误日志:通常时指错误日志的相关信息,通常用服务器关闭和启动的日志信息,服务器运行过程中的错误信息,还可以记录警告信息。
二进制日志:只是跟修改相关的操作,可以理解为一个重做日志,用于复制的基本凭据;
中继日志:它其实跟复制相关的,与二进制日志几乎相同;

mytop为MariaDB自带工具,但MySQL并没有携带该工具,需要自行安装。安装方式请自行google==

事物日志:随机I/O转换为顺序I/O,一般在两个文件存储,一个存满了就换另外一个存

使用方式

查询日志:

./mytop --prompt -u xxx -h xxx -P xxx -d xxx

log={ON|OFF}:是否记录所有语句的日志信息于一般查询日志文件(general_log)log_output:={TABLE|FILE|NONE}TABLE和FILE可以同时出现,用逗号分隔即可;general_log:是否启用查询日志general_log_file:定义一般查询日志保存的文件mysql > SET GOLBAL general_log ={OFF|ON};启用或关闭一般查询日志mysql > SET GLOGAL log_output=’TABLE’;选项可以控制log的存放方法,table表示以表格的方式存放。

结果解释

慢查询日志:

常用结果展示

long_query_time:10.000000秒,超出这个值的叫慢查询日志slow_query_log:OFF,设定是否启用慢查询的日志,它的输出位置也取决于log_output={TABLE|FILE|NONE};slow_query_log_file:www-slow.log:定义日志文件路径及名称mysql > SET GLOBAL log_output=’FILE,TABLE’;输出以表的形式或文件形式输出。

MariaDB on localhost (10.1.18-MariaDB) up 77+08:53:14 [20:08:00]Queries: 17.6G qps: 2833 Slow: 106.7k Se/In/Up/De(%): 48/07/11/00Sorts: 380 qps now: 3196 Slow qps: 0.2 Threads: 199 ( 3/ 102) 52/05/12/00Handler: (R/W/U/D) 9372/ 5371/ 709/ 0 Tmp: R/W/U: 297/ 278/ 0ISAM Key Efficiency: 99.7% Bps in/out: 586.6k/ 2.1M Now in/out: 521.9k/ 1.8MReplication IO:No SQL:No Id User Host/IP DB Time Cmd Query or State -- ---- ------- -- ---- --- ---------- 2 root localhost mysql 0 Query show full processlist 16 root localhost 0 Sleep 17 root localhost testdb 0 Query SELECT * FROM dept_emp

错误日志:
1、服务器启动和关闭过程中的信息;
2、服务器运行过程中的错误信息;
3、事件调度运行一个事件时产生的信息;
4、在复制架构中的从服务器上启动从服务器线程时产生的信息;

第一行:MariaDB版本;数据库运行时间;

log_error = /path/to/error_log_file:指定保存至一个特定目录下的某个文件中
log_warnings = {0|1}:是否记录警告信息于错误日志中

第二行:Queries为数据库启动之后处理的总queries;qps:数据库启动之后平均的qps;Slow:数据库启动之后的慢查询总数;Se/In/Up/De(%): SELECT/INSERT/UPDATE/DELETE所占的比例;

二进制日志:

第三行:Sorts:没看明白;qps now:自mytop上次刷新后的平均qps;Slow qps: 自mytop上次刷新后的平均慢查询qps;Threads: 连接数据库线程总数(活跃的线程数/SLEEP状态的线程数);52/05/12/00:自mytop上次刷新后SELECT/INSERT/UPDATE/DELTE的比例;

记录跟修改有关的信息,影响数据潜在的内容的信息,select的是不会被记录到二进制日志的,二进制日志也叫复制日志,默认在数据目录下,专门查看日志的命令是:mysqlbinlog
二进制日志的功用:
1、做时间点恢复,要想从哪个时间点恢复我们可以手动调的,所以这是一个备份恢复的重要工具
2、做复制;
因为我们的MySQL数据是单进程多线程的工作机制,所以他可以同时发起很多们修改的语句,但是我们服务器使用的日志只有一个,那如果同时进行的多个线程的请求都同时往日志文件中写数据,日志文件就成了资源热点,也叫资源征用点,那就会混乱不堪,为了解决这种问题,这里,当我们的线程要往二进制日志文件中写数据的时候,它不是直接写到日志文件中去,还是统一写到日志缓冲区中,由日志缓冲区逐一写入日志文件中去,然而我们的日志文件对于一个很繁忙的服务器来讲,每天都会产生很大的数据量,如果所有的二进制日志数据都写在一个日志文件中,那管理起来就特点的不方便了,也很不合理,如是日志文件丢失,那所有的日志数据信息都丢失了,不应该这么做,那我们就有日志滚动的机制了,二进制日志我们可以自己定义,有两种定义日志滚致力的方法,一种是按大小来定义的,比如说我们定义一个日志文件的大小为1G,那他存储一了大概1G左右就会滚动,使用下一个日志来存放二进制日志数据;另一种可以按时间来定义的,比如说一周滚动一次,或者说一个月,一天滚动一次都可以;或者每次重启服务时或者执行FLUSH LOGS命令时都会滚动一次日志。

第四行:个人目前没有看明白,也没有找到相关的描述;

MariaDB [(none)]> SHOW MASTER STATUS;可以查看当前服务器正在使用的二进制日志文件以及下一下个事件开始时基于的位置Position,如果当前使用的是00004,那么00001、2、3将不会再被使用,因为已经被滚动过去了。MariaDB [hellodb]> SHOW BINARY LOGS;查看当前系统上所有的的二进制日志文件,其实就是数据目录下mysql-bin.index文件中的信息,这个文件就是保存已经滚动过的日志文件的条目。MariaDB [hellodb]> flush logs;清除日志文件的命令:PURGEMariaDB [hellodb]> show binlog eventsin‘log_file’;# mysqlbinlog--start-time--stop-time--start-# mysqlbinlog --start-protion=1139 mysql-bin.000001:在命令行中查看某个日志文件的某个位置点往后所记录的数据信息。可以用输出重定向保存到某个文件中去将来用于执行的。server-id:服务器的身份标识,MariaDB [hellodb]> SELECT VERSION();查看当前数据库的版本MariaDB [(none)]> SHOW BINLOG EVENTS IN'mysql-bin.000001'FROM 1139;查看某个二进制日志文件中从哪个位置往后发生的事件信息。MariaDB [(none)]> SHOW BINLOG EVENTS IN'mysql-bin.000006'G查看某个二进制文件中在所有时间点和结束点等相关的信息。

第五行: ISAM Key Efficiency:myisam的key buffer的命中率,Bps:数据库启动之后平均的网络流量,Now:自mytop上次刷新后的平均网络流量。

MySQL记录二进制日志的格式有三种:
基于语句:statement,能够保存数据一模一样的就基于语句保存
基于行的:row,比如说插入当前时间,现在插入是当前的时间,过几天插入还是要插入当前的时间吗,当前时间的函数:CURRENT_DATE(),基于行记录的信息更加精确,但有些时候数据理过大,比如更新10000条数据只写一条语句,还基于行记录就要记录1000条。
混合模式:mixed,由MySQL自己判断以什么方式记录日志

常用快捷键

二进制日志文件内容格式主要有以下几个记录标志信息:

显示帮助信息。

# at 1451#140409 17:40:01 server id 1 end_log_pos 1563 Query thread_id=10 exec_time=0 error_code=0SET TIMESTAMP=1397036401/*!*/;/*!40000 ALTER TABLE `classes` DISABLE KEYS *//*!*/;记录了事件发生的日期和时间 (140409 17:40:01)记录了服务器ID serverid1记录了事件的类型 Query记录了事件的结束位置,就是事件到哪个地方结束了 (end_log_pos 1563)记录了原服务器上基于哪个线程生成的ID号 (thread_id=10)MariaDB [hellodb]> SHOW PROCESSLIST;查看某个线程的相关信息及ID号记录了语句的时间戳和写入二进制日志文件的时间差:单位为秒 exec_time=0,小于1秒为都记为0记录了错误代码:0表示没有错误 (error_code=0)记录开始位置,也是结束位置 at 1451/*!*/:这是注释

c 命令的总结视图(基于Com_*的统计)。

跟二进制日志文件相关的服务器参数:

C 关闭/开启颜色模式。

MariaDB [hellodb]> SHOW GLOBAL VARIABLES LIKE'%log%';查看服务器日志参数log_bin = {NO|OFF},还可以指文件路径,指定二进制文件路径存储在什么地方的sql_log_bin = {NO|OFF}log_bin_trust_function_creatorsbinlog_format = {statement|row|mixed}二进制格式,三种模式的,语句、行、混合模式的。max_binlog_cache_size =:二进制日志缓冲空间大小,仅用缓冲事物存储引擎相关类的日志。max_binlog_stmt_cache_size =:跟非事物类的和事物类的共用缓冲区大小。单位是字节max_binlog_size:二进制日志文件的上限,单位字节,超过上限就会滚动。

d 仅仅显示指定的数据库。

注意:切勿将二进制日志与数据文件放在同一设备中,这样即提升了性能,又保证数据文件的损坏而导致数据无法恢复的。默认是和数据文件存放在一起的,所以MySQL的很多默认设定并不适合生产环境中的使用,需要我们去调整的。

本文由澳门皇冠金沙网站发布于办公软件,转载请注明出处:MariaDB性能调优工具mytop的使用详解【澳门皇冠金

关键词: