Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
wrkdirs...ysqlsla(3)   User Contributed Perl Documentation  wrkdirs...ysqlsla(3)

NAME
     mysqlsla - Parse, filter, analyze and sort MySQL slow, general and binary
     logs

SYNOPSIS
	 # Basic operation: parse a MySQL slow or general log
	 mysqlsla --log-type slow LOG
	 mysqlsla --log-type general LOG

	 # Parse output from mysqlbinlog
	 # mysqlsla cannot directly parse binary logs
	 mysqlbinlog LOG | mysqlsla --log-type binary -

	 # Parse a microslow patched slow log
	 mysqlsla --log-type msl LOG

	 # Replay a replay file
	 mysqlsla --replay FILE

	 # Parse a user-defined log specify its format
	 mysqlsla --log-type udl --udl-format FILE

	 # Let mysqlsla automatically determine the log type
	 mysqlsla LOG

DESCRIPTION
     mysqlsla parses, filters, analyzes and sorts MySQL slow, general, binary
     and microslow patched slow logs. It also supports user-defined logs.

     This POD/man page is only a very brief outline of usage and command line
     options. For the full library of mysqlsla documentation visit http://hack-
     mysql.com/mysqlsla.

.mysqlsla CONFIG FILE
     Reading "~/.mysqlsla" is the very first thing mysqlsla does when it starts.
     Command line options can be set in this file (one per line). Example:

     atomic-statements

     statement-filter=+UPDATE,INSERT

     Notice: no leading dashes (- or --), no quotations marks ("), and the form
     "option=value" when "option" requires a value.

     These options are overriden by those given on the real command line.

COMMAND LINE OPTIONS
     "--log-type (-lt) TYPE LOGS"
	 Parse MySQL LOGS of TYPE. Default none. TYPE must be either slow, gen-
	 eral, binary, msl or udl. LOGS is a space-separated list of MySQL log
	 files.

	 As of mysqlsla v2.03 this option is optional. If given, mysqlsla will
	 treat the logs as the given type. If not given, mysqlsla will automati-
	 cally detect the log type by examining the first log file.

	 Binary logs are a special case. mysqlsla cannot read MySQL binary log
	 directly. You must first "decode" the binary log using mysqlbinlog
	 without the --short-form option. It is only the text output from mysql-
	 binlog that mysqlsla can read.

	 If you want to use the --short-form option with mysqlbinlog you must
	 then use TYPE udl with mysqlsla.

	 LOGS can also be - to make mysqlsla read from STDIN. This can be used
	 to pipe the output of another program into mysqlsla. However, if you
	 use - to read from STDIN, you must explicitly give the log type; mysql-
	 sla cannot automatically detect the log type from STDIN.

     "--abstract-in (-Ai) N"
	 Abstract IN () clauses further by grouping in groups of N. Disabled by
	 default.

     "--abstract-values (-Av)"
	 Abstract VALUES () clauses further by removing the number of condensed
	 value sets. Disabled by default.

     "--atomic-statements"
	 Treat multi-statment groups atomically when filtering. Disabled by de-
	 fault.

     "--avg (-n) N"
	 Average query timing over N executions. Default 1.

     "--databases (-db) (-D) DATABASES"
	 Try EXPLAINing queries which have no known database using DATABASES.
	 Default none. DATABASES is a comma-separated list of database names
	 (without spaces). Only used when option explain is used too.

     "--db-inheritance"
	 Allow queries to inherit the last database specified in the log. Dis-
	 abled by default.

     "--debug"
	 Enable a flood of debugging information from both mysqlsla and
	 MySQL::Log::ParseFilter. Disabled by default. Use with caution.

     "--dist"
	 Calculate distribution frequency of values. Disabled by default. Re-
	 quires an appropriate standard report format line.

     "--dist-min-percent (-dmin) N"
	 Do not display dist percents less than N. Default 5.

     "--dist-top (-dtop) N"
	 Display at most N dist percentages. Default 10.

     "--dont-save-meta-values"
	 Do not save meta-property values from log. Disabled by default
	 (meta-property values are saved).

     "--explain (-ex)"
	 EXPLAIN each query. Disabled by default. Requires an appropriate stan-
	 dard report format line.

     "--extra (-x) TINFO"
	 Display extra table information. TINFO can be either tschema, tcount or
	 both like tschema,tcount. Default none.

	 tschema will cause mysqlsla to print each tables structure (the output
	 of SHOW CREATE TABLE).

	 tcount will cause mysqlsla to print the number of rows in each table
	 using SELECT COUNT(*) FROM table.

     "--flush-qc"
	 Flush query cache before query execution timing. Disabled by default.

     "--grep PATTERN"
	 grep statements for PATTERN and keep only those which match. Default
	 none.

     "--help (-?)"
	 Tells you to see what you are reading right now.

     "--host ADDRESS"
	 Connect to MySQL at host ADDRESS. Default localhost if no socket is
	 available.

     "--meta-filter (-mf) CONDTIONS"
	 Set meta-properties filter using CONDITIONS. Default none. CONDITIONS
	 is a comma-separated list of meta-property conditions (without spaces)
	 in the form: [meta][op][value].

	 [meta] refers to a meta-property name, the list of which is long: see
	 mysqlsla v2 Filters.

	 [op] is either > < or =. [value] is the value, numeric or string,
	 against which the value for [meta] from the log must be true according
	 to [op].

	 For string-based [meta], like db or host, [op] can only be =.

     "--microsecond-symbol (-us) STRING"
	 Use STRING to denote microsecond values. Default i?1/2s.

     "--no-mycnf"
	 Do not read ~/.my.cnf when initializing. Does not apply to Windows
	 servers.

     "--nthp-min-values (nthpm) N"
	 Do not calculate Nth percent values if there are less than N values.
	 Default 10.

     "--nth-percent (-nthp) N"
	 Calculate Nth percent values. Disabled by default or 95 if used but no
	 N is given. Requires an appropriate standard report format line.

     "--password PASS"
	 Use PASS as MySQL user password. If PASS is omitted, the password will
	 be prompted for (on STDERR).

     "--percent"
	 Display a basic percentage complete indictor while timing all queries
	 for the time-all report.  Disabled by default.

     "--port PORT"
	 Connect to MySQL on PORT. Default none (relies on system default which
	 will be 3306).

     "--post-analyses-replay FILE"
	 Save a post-analyses replay as FILE.

     "--post-parse-replay FILE"
	 Save a post-parse replay as FILE.

     "--post-sort-replay FILE"
	 Save a post-sort replay as FILE.

     "--replay FILE"
	 Load unique queries from replay FILE. Default none.

     "--report-format (-rf) FILE"
	 Use FILE to format the standard report. Default internal report format.

     "--reports (-R) REPORTS"
	 Print REPORTS. Default standard. REPORTS is a comma-separated list of
	 report names (without spaces).

	 Available reports are: standard, time-all, print-unique, print-all,
	 dump.

	 WARNING: A safety SQL statement filter of "+SELECT,USE" is automati-
	 cally set when using time-each-query or the time-all report. Overriding
	 the safety SQL statement filter by explicitly setting another with
	 statement-filter can permit real changes to databases. Use with cau-
	 tion!

     "--save-all-values"
	 Save extra "all values" for some meta-properties. Disabled by default.

     "--silent"
	 Do not print any reports. Disabled by default. Debug messages will
	 still be printed.

     "--socket SOCKET"
	 Connect to MySQL through SOCKET. Default none (relies on system default
	 which is compiled into the MySQL client library).

     "--sort META"
	 Sort queries according to META. Default t_sum for slow and msl logs,
	 c_sum for all others.	META is any meta-property name.

     "--statement-filter (-sf) CONDTIONS"
	 Set SQL statement filter using CONDITIONS. Default none. CONDITIONS is
	 a comma-separated list of SQL statement types	in the form:
	 [+-][TYPE],[TYPE],etc.

	 The [+-] is given only once before the first [TYPE]. A + indicates a
	 positive filter: keep only SQL statements of [TYPE]. A - indicates a
	 negative filter: remove only SQL statements of [TYPE].  If neither is
	 given, - is default.

	 [TYPE] is a SQL statement type: SELECT, CREATE, DROP, UPDATE, INSERT,
	 etc.

     "--time-each-query (-te)"
	 Time each query by actually executing it on the MySQL server. Disabled
	 by default. Requires an appropriate standard report format line.

	 WARNING: A safety SQL statement filter of "+SELECT,USE" is automati-
	 cally set when using time-each-query or the time-all report. Overriding
	 the safety SQL statement filter by explicitly setting another with
	 statement-filter can permit real changes to databases. Use with cau-
	 tion!

     "--top N"
	 After sorting display only the top N queries. Default 10.

     "--udl-format (-uf) FILE"
	 Use FILE to define the format of the user-defined log (udl) instead of
	 the default. Default is ";\n" record separator and no headers.

     "--user USER"
	 Connect to MySQL as USER. Default user of mysqlsla process.

CUSTOM REPORT FORMATS
     The standard report is the human-readable report which shows all the num-
     bers and values calculated from the log. If no other report is specified,
     it is the default report.

     mysqlsla automatically formats the standard report according to a report
     format depending on the log type being parsed. Therefore, the standard re-
     port for general logs is different from slow logs and binary logs, etc.
     mysqlsla has, internally, basic report formats for every log type, but a
     custom report format can be explicitly set by using the "--report-format"
     option.

     Read http://hackmysql.com/mysqlsla_reports for more information on creating
     and customizing report formats.

BUGS
     I follow the zero known bugs release policy in releasing new versions of
     mysqlsla. Certainly, however, bugs still exist somewhere. So when you find
     one, contact me through the web site at http://hackmysql.com/contact.

SEE ALSO
     http://hackmysql.com/mysqlsla

AUTHOR
     Daniel Nichter (http://hackmysql.com/)

COPYRIGHT AND LICENSE
     Copyright 2007-2008 Daniel Nichter

     This program is free software; you can redistribute it and/or modify it un-
     der the terms of the GNU General Public License as published by the Free
     Software Foundation; either version 2 of the License, or (at your option)
     any later version.

     This program is distributed in the hope that it will be useful, but WITHOUT
     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FIT-
     NESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
     details.

     The GNU General Public License is available at: http://www.gnu.org/copy-
     left/gpl.html

perl v5.42.3			   2026-08-29		    wrkdirs...ysqlsla(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mysqlsla&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help