diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-02-25 18:19:55 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-02-25 18:19:55 +0100 |
commit | 00d1db7a38b17d4512a6ba5147926608aca5624d (patch) | |
tree | c2b28145304e9eacf79fcabaeb962a20d79fec93 /debian | |
parent | 0485328d030f4b742dac7b667e8ed099beb9e9f2 (diff) | |
parent | 0251232f8c3bca33b4dd15d6668105f3de9d024d (diff) | |
download | mariadb-git-00d1db7a38b17d4512a6ba5147926608aca5624d.tar.gz |
Merge branch '10.1' into 10.2
Diffstat (limited to 'debian')
-rw-r--r-- | debian/additions/my.cnf | 2 | ||||
-rwxr-xr-x | debian/additions/mysqlreport | 530 | ||||
-rw-r--r-- | debian/mariadb-client-10.2.README.Debian | 2 |
3 files changed, 431 insertions, 103 deletions
diff --git a/debian/additions/my.cnf b/debian/additions/my.cnf index 4645e7c557a..d30ec182c8b 100644 --- a/debian/additions/my.cnf +++ b/debian/additions/my.cnf @@ -177,7 +177,7 @@ quote-names max_allowed_packet = 16M [mysql] -#no-auto-rehash # faster start of mysql but no tab completition +#no-auto-rehash # faster start of mysql but no tab completion [isamchk] key_buffer = 16M diff --git a/debian/additions/mysqlreport b/debian/additions/mysqlreport index 402a5be835d..772d6399437 100755 --- a/debian/additions/mysqlreport +++ b/debian/additions/mysqlreport @@ -1,10 +1,11 @@ #!/usr/bin/perl -w -# mysqlreport v3.5 Apr 16 2008 +# mysqlreport v4.0 Oct 23 2015 # http://hackmysql.com/mysqlreport -# mysqlreport makes an easy-to-read report of important MySQL status values. +# mysqlreport makes an easy-to-read report of important MySQL/MariaDB status values. # Copyright 2006-2008 Daniel Nichter +# Copyright 2012-2015 Jean Weisbuch # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -36,16 +37,19 @@ my ($stat_name, $stat_val, $stat_label); my $MySQL_version; my (%stats, %vars); # SHOW STATUS, SHOW VARIABLES my (%DMS_vals, %Com_vals, %ib_vals); -my ($dbh, $query); +my $dbh; my ($questions, $key_read_ratio, $key_write_ratio, $dms, $slow_query_t); my ($key_cache_block_size, $key_buffer_used, $key_buffer_usage); my ($qc_mem_used, $qc_hi_r, $qc_ip_r); # Query Cache -my $have_innodb_vals; my ($ib_bp_used, $ib_bp_total, $ib_bp_read_ratio); my ($relative_live, $relative_infiles); my $real_uptime; my (%stats_present, %stats_past); # For relative reports - +my ($pagecache_read_ratio, $pagecache_write_ratio, $pagecache_block_size, $pagecache_buffer_used, $pagecache_buffer_usage); # AriaDB pagecache stats +my ($binlog_cache_ratio, $binlog_stmt_cache_ratio); # binary log cache +my $dbms; +my ($rows, $rows_using_indexes); + GetOptions ( \%op, "user=s", @@ -127,13 +131,19 @@ $| = 1 if ($op{'detach'} || $relative_live); print "tmp file: $tmpfile\n" if $op{debug}; -# Connect to MySQL +# Connect to MySQL/MariaDB if(!$op{'infile'} && !$relative_infiles) { connect_to_MySQL(); } -$have_innodb_vals = 1; # This might be set to 0 later in get_MySQL_version() +my $have_innodb_vals = 1; # This might be set to 0 later in get_MySQL_version() +my $have_aria_vals = 0; +my $have_subquerycache_vals = 0; +my $have_binlog_vals = 0; +my $have_tokudb_engine = 0; +my $use_thread_pool = 0; +my $use_xtradb = 0; if(defined $op{'r'}) { @@ -163,6 +173,9 @@ else set_myisam_vals(); set_ib_vals() if $have_innodb_vals; + set_aria_vals() if $have_aria_vals; + set_subquerycache_vals() if $have_subquerycache_vals; + set_binlog_vals() if $have_binlog_vals; write_report(); } @@ -177,8 +190,8 @@ exit; sub show_help_and_exit { print <<"HELP"; -mysqlreport v3.5 Apr 16 2008 -mysqlreport makes an easy-to-read report of important MySQL status values. +mysqlreport v4.0 Oct 23 2015 +mysqlreport makes an easy-to-read report of important MySQL/MariaDB status values. Command line options (abbreviations work): --user USER Connect to MySQL as USER @@ -264,6 +277,9 @@ sub collect_reports set_myisam_vals(); set_ib_vals() if $have_innodb_vals; + set_aria_vals() if $have_aria_vals; + set_subquerycache_vals() if $have_subquerycache_vals; + set_binlog_vals() if $have_binlog_vals; print "#\n# Beginning report, 0 0:0:0\n#\n"; @@ -403,6 +419,9 @@ sub relative_infile_report set_myisam_vals(); set_ib_vals() if $have_innodb_vals; + set_aria_vals() if $have_aria_vals; + set_subquerycache_vals() if $have_subquerycache_vals; + set_binlog_vals() if $have_binlog_vals; print "#\n# Beginning report, 0 0:0:0\n#\n"; @@ -422,7 +441,7 @@ sub get_vals { print "get_vals\n" if $op{debug}; - my @row; + my (@row, $query); # Get status values if($MySQL_version >= 50002) @@ -434,7 +453,9 @@ sub get_vals $query = $dbh->prepare("SHOW STATUS;"); } $query->execute(); - while(@row = $query->fetchrow_array()) { $stats{$row[0]} = $row[1]; } + # To avoid problems if the variable capitalization would change (eg. TokuDB on MariaDB 5.5 => 10.0), the $stats index is forced to have its first char uppercase and the rest lowercase + while(@row = $query->fetchrow_array()) { $stats{ucfirst(lc($row[0]))} = $row[1]; } + $query->finish(); $real_uptime = $stats{'Uptime'}; } @@ -443,18 +464,23 @@ sub get_vars { print "get_vars\n" if $op{debug}; - my @row; + my (@row, $query); # Get server system variables $query = $dbh->prepare("SHOW VARIABLES;"); $query->execute(); while(@row = $query->fetchrow_array()) { $vars{$row[0]} = $row[1]; } - + $query->finish(); # table_cache was renamed to table_open_cache in MySQL 5.1.3 if($MySQL_version >= 50103) { $vars{'table_cache'} = $vars{'table_open_cache'}; } + # log_slow_queries was renamed to slow_query_log in MySQL 5.1.29 + if($MySQL_version >= 50129) + { + $vars{'log_slow_queries'} = $vars{'slow_query_log'}; + } } sub read_infile @@ -507,10 +533,10 @@ sub read_infile else { print "read_infile: ignore '$_'\n" if $op{debug}; } last if $1 eq 'Uptime'; # exit while() if end of status values - $_ = <INFILE>; # otherwise, read next line of status values + $_ = <INFILE>; # otherwise, read next line of status values } } - elsif($1 eq 'back_log') # system variable values + elsif($1 eq 'back_log') # system variable values { print "read_infile: start vars\n" if $op{debug}; @@ -525,7 +551,7 @@ sub read_infile else { print "read_infile: ignore '$_'\n" if $op{debug}; } last if $1 eq 'wait_timeout'; # exit while() if end of vars - $_ = <INFILE>; # otherwise, read next line of vars + $_ = <INFILE>; # otherwise, read next line of vars } } elsif($1 eq '=') # old style, manually added system variable values @@ -542,7 +568,7 @@ sub read_infile } else { print "read_infile: ignore '$_'\n" if $op{debug}; } - $_ = <INFILE>; # otherwise, read next line of old vars + $_ = <INFILE>; # otherwise, read next line of old vars } redo; @@ -572,25 +598,116 @@ sub get_MySQL_version if($op{'infile'} || $relative_infiles) { - ($major, $minor, $patch) = ($vars{'version'} =~ /(\d{1,2})\.(\d{1,2})\.(\d{1,2})/); + ($major, $minor, $patch) = ($vars{'version'} =~ /^(\d{1,2})\.(\d{1,2})\.(\d{1,2})/); + if($vars{'version'} =~ /^\d{1,2}\.\d{1,2}\.\d{1,2}-MariaDB/) { + print "MariaDB detected\n" if $op{debug}; + $dbms = "MariaDB"; + } else { + $dbms = "MySQL"; + } } else { - my @row; + my (@row, $query); $query = $dbh->prepare("SHOW VARIABLES LIKE 'version';"); $query->execute(); @row = $query->fetchrow_array(); - ($major, $minor, $patch) = ($row[1] =~ /(\d{1,2})\.(\d{1,2})\.(\d{1,2})/); + $query->finish(); + ($major, $minor, $patch) = ($row[1] =~ /^(\d{1,2})\.(\d{1,2})\.(\d{1,2})/); + if($row[1] =~ /^\d{1,2}\.\d{1,2}\.\d{1,2}-MariaDB/) + { + print "MariaDB detected\n" if $op{debug}; + $dbms = "MariaDB"; + } + else + { + $dbms = "MySQL"; + } } + # The major version number is kept as is while the minor version and the revision number are forced to 2 digits + # e.g.: 5.5.9 will be 50509, 10.0.5 will be 100005 and 10.1.23 will be 100123 $MySQL_version = sprintf("%d%02d%02d", $major, $minor, $patch); + print "Version $MySQL_version\n" if $op{debug}; # Innodb_ status values were added in 5.0.2 if($MySQL_version < 50002) { $have_innodb_vals = 0; print "get_MySQL_version: no InnoDB reports because MySQL version is older than 5.0.2\n" if $op{debug}; + } else { + $have_innodb_vals = $dbh->selectall_arrayref("SELECT SUPPORT FROM information_schema.engines WHERE ENGINE = 'InnoDB';", undef)->[0][0]; + if(defined($have_innodb_vals) && ($have_innodb_vals eq "YES" || $have_innodb_vals eq "DEFAULT")) + { + print "InnoDB detected\n" if $op{debug}; + $have_innodb_vals = 1; + } else { + print "InnoDB is not activated\n" if $op{debug}; + $have_innodb_vals = 0; + } + } + + if($dbms eq "MariaDB") { + $have_aria_vals = $dbh->selectall_arrayref("SELECT SUPPORT FROM information_schema.engines WHERE ENGINE = 'Aria';", undef)->[0][0]; + if(defined($have_aria_vals) && $have_aria_vals eq "YES") + { + print "Aria engine detected\n" if $op{debug}; + $have_aria_vals = 1; + } else { + $have_aria_vals = 0; + } + + # MariaDB 5.3+, activated by default since 5.3.2 + $have_subquerycache_vals = $dbh->selectall_arrayref("SELECT VARIABLE_VALUE REGEXP ',subquery_cache=on,|^subquery_cache=on,|,subquery_cache=on\$' AS SUBQUERY_CACHE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'optimizer_switch';", undef)->[0][0]; + if(defined($have_subquerycache_vals) && $have_subquerycache_vals eq "1") + { + print "Subquery cache is activated\n" if $op{debug}; + $have_subquerycache_vals = 1; + } else { + $have_subquerycache_vals = 0; + } + } + + if($MySQL_version >= 50000) + { + # These checks use the 'information_schema' virtual database that has been added on MySQL 5.0 + + # MariaDB 5.5.21+ and Percona Server 5.5.30+ use the same thread pool implementation + $use_thread_pool = $dbh->selectall_arrayref("SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'thread_handling';", undef)->[0][0]; + if(defined($use_thread_pool) && $use_thread_pool eq "pool-of-threads") { + print "Thread pool is used\n" if $op{debug}; + $use_thread_pool = 1; + } else { + $use_thread_pool = 0; + } + + $have_binlog_vals = $dbh->selectall_arrayref("SELECT VARIABLE_VALUE FROM information_schema.global_variables WHERE VARIABLE_NAME = 'log_bin';", undef)->[0][0]; + if(defined($have_binlog_vals) && $have_binlog_vals eq "ON") + { + print "Binary log is activated\n" if $op{debug}; + $have_binlog_vals = 1; + } else { + $have_binlog_vals = 0; + } + + $have_tokudb_engine = $dbh->selectall_arrayref("SELECT SUPPORT FROM information_schema.engines WHERE ENGINE = 'TokuDB';", undef)->[0][0]; + if(defined($have_tokudb_engine) && ($have_tokudb_engine eq "YES" || $have_tokudb_engine eq "DEFAULT")) + { + print "TokuDB detected\n" if $op{debug}; + $have_tokudb_engine = 1; + } else { + $have_tokudb_engine = 0; + } + + $use_xtradb = $dbh->selectall_arrayref("SELECT 1 FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = 'InnoDB' AND COMMENT LIKE 'Percona-XtraDB%';", undef)->[0][0]; + if(defined($use_xtradb) && $use_xtradb eq "1") + { + print "XtraDB detected\n" if $op{debug}; + $use_xtradb = 1; + } else { + $use_xtradb = 0; + } } } @@ -598,6 +715,7 @@ sub set_myisam_vals { print "set_myisam_vals\n" if $op{debug}; +# should be moved elsewere $questions = $stats{'Questions'}; $key_read_ratio = sprintf "%.2f", @@ -638,7 +756,6 @@ sub set_myisam_vals $dms = $DMS_vals{SELECT} + $DMS_vals{INSERT} + $DMS_vals{REPLACE} + $DMS_vals{UPDATE} + $DMS_vals{DELETE}; $slow_query_t = format_u_time($vars{long_query_time}); - } sub set_ib_vals @@ -658,6 +775,46 @@ sub set_ib_vals 0); } +sub set_aria_vals +{ + print "set_aria_vals\n" if $op{debug}; + + $pagecache_read_ratio = sprintf "%.2f", + ($stats{'Aria_pagecache_read_requests'} ? + 100 - ($stats{'Aria_pagecache_reads'} / $stats{'Aria_pagecache_read_requests'}) * 100 : + 0); + + $pagecache_write_ratio = sprintf "%.2f", + ($stats{'Aria_pagecache_write_requests'} ? + 100 - ($stats{'Aria_pagecache_writes'} / $stats{'Aria_pagecache_write_requests'}) * 100 : + 0); + + $pagecache_block_size = (defined $vars{'aria_block_size'} ? + $vars{'aria_block_size'} : + 1024); + + $pagecache_buffer_used = $stats{'Aria_pagecache_blocks_used'} * $pagecache_block_size; + + $pagecache_buffer_usage = $vars{'aria_pagecache_buffer_size'} - + ($stats{'Aria_pagecache_blocks_unused'} * $pagecache_block_size); +} + +sub set_subquerycache_vals +{ + print "set_subquerycache_vals\n" if $op{debug}; +} + +sub set_binlog_vals +{ + print "set_binlog_vals\n" if $op{debug}; + + if($stats{'Binlog_cache_use'} gt 0) { $binlog_cache_ratio = $stats{'Binlog_cache_disk_use'} / $stats{'Binlog_cache_use'}; } + else { $binlog_cache_ratio = 0; } + + if(defined($stats{'Binlog_stmt_cache_use'}) && $stats{'Binlog_stmt_cache_use'} gt 0) { $binlog_stmt_cache_ratio = $stats{'Binlog_stmt_cache_disk_use'} / $stats{'Binlog_stmt_cache_use'}; } + else { $binlog_stmt_cache_ratio = 0; } +} + sub write_relative_report { print "write_relative_report\n" if $op{debug}; @@ -708,6 +865,10 @@ sub write_relative_report $stats{'Innodb_row_lock_time_max'} = $stats_present{'Innodb_row_lock_time_max'}; } } + if($have_aria_vals) + { + $stats{'Aria_pagecache_blocks_used'} = $stats_present{'Aria_pagecache_blocks_used'}; + } get_Com_values(); @@ -715,6 +876,9 @@ sub write_relative_report set_myisam_vals(); set_ib_vals() if $have_innodb_vals; + set_aria_vals() if $have_aria_vals; + set_subquerycache_vals() if $have_subquerycache_vals; + set_binlog_vals() if $have_binlog_vals; write_report(); } @@ -731,15 +895,27 @@ sub write_report $~ = 'SLOW_DMS', write; write_DMS(); write_Com(); + write_Rows(); $~ = 'SAS', write; write_qcache(); $~ = 'REPORT_END', write; + $~ = 'THREADS', write; + if($use_thread_pool) + { + $~ = 'THREADPOOL', write; + } else { + $~ = 'THREADPERCONNECTION', write; + } $~ = 'TAB', write; write_InnoDB() if $have_innodb_vals; + write_Aria() if $have_aria_vals; + write_Subquerycache() if $have_subquerycache_vals; + write_Binlog() if $have_binlog_vals; + write_TokuDB() if $have_tokudb_engine; } -sub sec_to_dhms # Seconds to days hours:minutes:seconds +sub sec_to_dhms # Seconds to days+hours:minutes:seconds { my $s = shift; my ($d, $h, $m) = (0, 0, 0); @@ -761,7 +937,7 @@ sub sec_to_dhms # Seconds to days hours:minutes:seconds $m = int $s / 60; $s -= $m * 60; - return "$d $h:$m:$s"; + return "$d+$h:$m:$s"; } sub make_short @@ -782,12 +958,11 @@ sub make_short } # What began as a simple but great idea has become the new standard: -# long_query_time in microseconds. For MySQL 5.1.21+ and 6.0.4+ this -# is now standard. For 4.1 and 5.0 patches, the architects of this -# idea provide: http://www.mysqlperformanceblog.com/mysql-patches/ +# long_query_time in microseconds. For MySQL 5.1.21+ this is now +# standard. For 4.1 and 5.0 patches, the architects of this idea +# provide: http://www.mysqlperformanceblog.com/mysql-patches/ # Relevant notes in MySQL manual: # http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html -# http://dev.mysql.com/doc/refman/6.0/en/slow-query-log.html # # The format_u_time sub simply beautifies long_query_time. @@ -848,7 +1023,7 @@ sub email_report # Email given report to $op{'email'} open SENDMAIL, "|/usr/sbin/sendmail -t"; print SENDMAIL "From: mysqlreport\n"; print SENDMAIL "To: $op{email}\n"; - print SENDMAIL "Subject: MySQL status report on " . ($mycnf{'host'} || 'localhost') . "\n\n"; + print SENDMAIL "Subject: $dbms status report on " . ($mycnf{'host'} || 'localhost') . "\n\n"; print SENDMAIL `cat $report`; close SENDMAIL; } @@ -979,6 +1154,7 @@ sub write_qcache # ergo this method is slightly more reliable return if not exists $vars{'query_cache_size'}; return if $vars{'query_cache_size'} == 0; + return if defined($vars{'query_cache_type'}) and $vars{'query_cache_type'} eq 'OFF'; $qc_mem_used = $vars{'query_cache_size'} - $stats{'Qcache_free_memory'}; $qc_hi_r = sprintf "%.2f", $stats{'Qcache_hits'} / ($stats{'Qcache_inserts'} ||= 1); @@ -988,6 +1164,36 @@ sub write_qcache write; } +sub write_Subquerycache +{ + print "write_Subquerycache\n" if $op{debug}; + + return if not defined $stats{'Subquery_cache_hit'}; + return if $stats{'Subquery_cache_hit'} == 0 && $stats{'Subquery_cache_miss'} == 0; + + $~ = 'SUBQUERYCACHE'; + write; +} + +sub write_Binlog +{ + print "write_Binlog\n" if $op{debug}; + + return if $binlog_cache_ratio == 0 && $binlog_stmt_cache_ratio == 0; + $~ = 'BINLOG'; + write; +} + +sub write_TokuDB +{ + print "write_TokuDB\n" if $op{debug}; + + return if $stats{'Tokudb_cachetable_size_current'} == 0; + + $~ = 'TOKUDB'; + write; +} + sub write_InnoDB { print "write_InnoDB\n" if $op{debug}; @@ -998,6 +1204,11 @@ sub write_InnoDB $~ = 'IB'; write; + if($use_xtradb) + { + $~ = 'IB_XTRADB'; + write; + } # Innodb_row_lock_ values were added in MySQL 5.0.3 if($MySQL_version >= 50003) @@ -1005,12 +1216,44 @@ sub write_InnoDB $~ = 'IB_LOCK'; write; } + if($use_xtradb) + { + $~ = 'IB_LOCK_XTRADB'; + write; + } # Data, Pages, Rows $~ = 'IB_DPR'; write; } + +sub write_Aria +{ + print "write_Aria\n" if $op{debug}; + + return if not defined $stats{'Aria_pagecache_blocks_used'}; + + $~ = 'PAGECACHE_BUFF_MAX'; + write; + + if($pagecache_buffer_usage != -1) { $~ = 'PAGECACHE_BUFF_USAGE', write } + + $~ = 'PAGECACHE_RATIOS'; + write; +} + +sub write_Rows +{ + print "write_Rows\n" if $op{debug}; + + $rows_using_indexes = $stats{'Handler_read_first'} + $stats{'Handler_read_key'} + $stats{'Handler_read_next'} + $stats{'Handler_read_prev'}; + $rows = $rows_using_indexes + $stats{'Handler_read_rnd'} + $stats{'Handler_read_rnd_next'} + $stats{'Sort_rows'}; + + $~ = 'ROWS'; + write; +} + sub have_op { my $key = shift; @@ -1043,19 +1286,17 @@ sub exit_tasks_and_cleanup } else { - if($WIN) { `del $tmpfile`; } - else { `rm -f $tmpfile`; } + unlink $tmpfile; } if(!$op{'infile'} && !$relative_infiles) { if($op{'flush-status'}) { - $query = $dbh->prepare("FLUSH STATUS;"); + my $query = $dbh->prepare("FLUSH STATUS;"); $query->execute(); + $query->finish(); } - - $query->finish(); $dbh->disconnect(); } } @@ -1065,19 +1306,19 @@ sub exit_tasks_and_cleanup # format MYSQL_TIME = -MySQL @<<<<<<<<<<<<<<<< uptime @<<<<<<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>> -$vars{'version'}, sec_to_dhms($real_uptime), (($op{infile} || $relative_infiles) ? '' : scalar localtime) +@<<<<<< @<<<<<<<<<<<<<<<<<< uptime @<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<< +$dbms, $vars{'version'}, sec_to_dhms($real_uptime), (($op{infile} || $relative_infiles) ? '' : scalar localtime) . format KEY_BUFF_MAX = __ Key _________________________________________________________________ -Buffer used @>>>>>> of @>>>>>> %Used: @>>>>> +Buffer used @>>>>>> of @>>>>>> %Used: @>>>>> make_short($key_buffer_used, 1), make_short($vars{'key_buffer_size'}, 1), perc($key_buffer_used, $vars{'key_buffer_size'}) . format KEY_BUFF_USAGE = - Current @>>>>>> %Usage: @>>>>> + Current @>>>>>> %Usage: @>>>>> make_short($key_buffer_usage, 1), perc($key_buffer_usage, $vars{'key_buffer_size'}) . @@ -1088,166 +1329,197 @@ Read hit @>>>>>% $key_read_ratio __ Questions ___________________________________________________________ -Total @>>>>>>>> @>>>>>/s +Total @>>>>>>>> @>>>>>/s make_short($questions), t($questions) . format DTQ = - @<<<<<<< @>>>>>>>> @>>>>>/s @>>>>>> @>>>>> + @<<<<<<< @>>>>>>>> @>>>>>/s @>>>>>> @>>>>> $stat_name, make_short($stat_val), t($stat_val), $stat_label, perc($stat_val, $questions) . format SLOW_DMS = -Slow @<<<<<<< @>>>>>> @>>>>>/s @>>>>> %DMS: @>>>>> Log: @>> +Slow @<<<<<<< @>>>>>> @>>>>>/s @>>>>> %DMS: @>>>>> Log: @>> $slow_query_t, make_short($stats{'Slow_queries'}), t($stats{'Slow_queries'}), perc($stats{'Slow_queries'}, $questions), perc($stats{'Slow_queries'}, $dms), $vars{'log_slow_queries'} -DMS @>>>>>>>> @>>>>>/s @>>>>> +DMS @>>>>>>>> @>>>>>/s @>>>>> make_short($dms), t($dms), perc($dms, $questions) . format DMS = - @<<<<<<< @>>>>>>>> @>>>>>/s @>>>>> @>>>>> + @<<<<<<< @>>>>>>>> @>>>>>/s @>>>>> @>>>>> $stat_name, make_short($stat_val), t($stat_val), perc($stat_val, $questions), perc($stat_val, $dms) . format COM_1 = -Com_ @>>>>>>>> @>>>>>/s @>>>>> +Com_ @>>>>>>>> @>>>>>/s @>>>>> make_short($stat_val), t($stat_val), perc($stat_val, $questions) . format COM_2 = - @<<<<<<<<<< @>>>>>> @>>>>>/s @>>>>> + @<<<<<<<<<< @>>>>>> @>>>>>/s @>>>>> $stat_name, make_short($stat_val), t($stat_val), perc($stat_val, $questions) . format SAS = __ SELECT and Sort _____________________________________________________ -Scan @>>>>>> @>>>>/s %SELECT: @>>>>> +Scan @>>>>>> @>>>>>/s %SELECT: @>>>>> make_short($stats{'Select_scan'}), t($stats{'Select_scan'}), perc($stats{'Select_scan'}, $stats{'Com_select'}) -Range @>>>>>> @>>>>/s @>>>>> +Range @>>>>>> @>>>>>/s @>>>>> make_short($stats{'Select_range'}), t($stats{'Select_range'}), perc($stats{'Select_range'}, $stats{'Com_select'}) -Full join @>>>>>> @>>>>/s @>>>>> +Full join @>>>>>> @>>>>>/s @>>>>> make_short($stats{'Select_full_join'}), t($stats{'Select_full_join'}), perc($stats{'Select_full_join'}, $stats{'Com_select'}) -Range check @>>>>>> @>>>>/s @>>>>> +Range check @>>>>>> @>>>>>/s @>>>>> make_short($stats{'Select_range_check'}), t($stats{'Select_range_check'}), perc($stats{'Select_range_check'}, $stats{'Com_select'}) -Full rng join @>>>>>> @>>>>/s @>>>>> +Full rng join @>>>>>> @>>>>>/s @>>>>> make_short($stats{'Select_full_range_join'}), t($stats{'Select_full_range_join'}), perc($stats{'Select_full_range_join'}, $stats{'Com_select'}) -Sort scan @>>>>>> @>>>>/s +Sort scan @>>>>>> @>>>>>/s make_short($stats{'Sort_scan'}), t($stats{'Sort_scan'}) -Sort range @>>>>>> @>>>>/s +Sort range @>>>>>> @>>>>>/s make_short($stats{'Sort_range'}), t($stats{'Sort_range'}) -Sort mrg pass @>>>>>> @>>>>/s +Sort mrg pass @>>>>>> @>>>>>/s make_short($stats{'Sort_merge_passes'}), t($stats{'Sort_merge_passes'}) . format QCACHE = __ Query Cache _________________________________________________________ -Memory usage @>>>>>> of @>>>>>> %Used: @>>>>> +Memory usage @>>>>>> of @>>>>>> %Usage: @>>>>> make_short($qc_mem_used, 1), make_short($vars{'query_cache_size'}, 1), perc($qc_mem_used, $vars{'query_cache_size'}) Block Fragmnt @>>>>>% perc($stats{'Qcache_free_blocks'}, $stats{'Qcache_total_blocks'}) -Hits @>>>>>> @>>>>/s +Hits @>>>>>> @>>>>>/s make_short($stats{'Qcache_hits'}), t($stats{'Qcache_hits'}) -Inserts @>>>>>> @>>>>/s +Inserts @>>>>>> @>>>>>/s make_short($stats{'Qcache_inserts'}), t($stats{'Qcache_inserts'}) -Insrt:Prune @>>>>>>:1 @>>>>/s +Insrt:Prune @>>>>>>:1 @>>>>>/s make_short($qc_ip_r), t($stats{'Qcache_inserts'} - $stats{'Qcache_lowmem_prunes'}) Hit:Insert @>>>>>>:1 $qc_hi_r, t($qc_hi_r) . +format SUBQUERYCACHE = + +__ Subquery Cache ______________________________________________________ +Hit ratio @>>>>>% +perc($stats{'Subquery_cache_hit'} / ($stats{'Subquery_cache_hit'} + $stats{'Subquery_cache_miss'})) +Hits @>>>>>> @>>>>>/s +make_short($stats{'Subquery_cache_hit'}), t($stats{'Subquery_cache_hit'}) +Miss @>>>>>> @>>>>>/s +make_short($stats{'Subquery_cache_miss'}), t($stats{'Subquery_cache_miss'}) +. + # Not really the end... format REPORT_END = __ Table Locks _________________________________________________________ -Waited @>>>>>>>> @>>>>>/s %Total: @>>>>> +Waited @>>>>>>>> @>>>>>/s %Total: @>>>>> make_short($stats{'Table_locks_waited'}), t($stats{'Table_locks_waited'}), perc($stats{'Table_locks_waited'}, $stats{'Table_locks_waited'} + $stats{'Table_locks_immediate'}); -Immediate @>>>>>>>> @>>>>>/s +Immediate @>>>>>>>> @>>>>>/s make_short($stats{'Table_locks_immediate'}), t($stats{'Table_locks_immediate'}) __ Tables ______________________________________________________________ -Open @>>>>>>>> of @>>> %Cache: @>>>>> +Open @>>>>>>>> of @>>>>> %Cache: @>>>>> $stats{'Open_tables'}, $vars{'table_cache'}, perc($stats{'Open_tables'}, $vars{'table_cache'}) -Opened @>>>>>>>> @>>>>>/s +Opened @>>>>>>>> @>>>>>/s make_short($stats{'Opened_tables'}), t($stats{'Opened_tables'}) __ Connections _________________________________________________________ -Max used @>>>>>>>> of @>>> %Max: @>>>>> +Max used @>>>>>>>> of @>>>>> %Max: @>>>>> $stats{'Max_used_connections'}, $vars{'max_connections'}, perc($stats{'Max_used_connections'}, $vars{'max_connections'}) -Total @>>>>>>>> @>>>>>/s +Total @>>>>>>>> @>>>>>/s make_short($stats{'Connections'}), t($stats{'Connections'}) __ Created Temp ________________________________________________________ -Disk table @>>>>>>>> @>>>>>/s -make_short($stats{'Created_tmp_disk_tables'}), t($stats{'Created_tmp_disk_tables'}) -Table @>>>>>>>> @>>>>>/s Size: @>>>>> +Disk table @>>>>>>>> @>>>>>/s %Disk: @>>>>> +make_short($stats{'Created_tmp_disk_tables'}), t($stats{'Created_tmp_disk_tables'}), perc($stats{'Created_tmp_disk_tables'}, $stats{'Created_tmp_tables'}) +Table @>>>>>>>> @>>>>>/s Size: @>>>>> make_short($stats{'Created_tmp_tables'}), t($stats{'Created_tmp_tables'}), make_short($vars{'tmp_table_size'}, 1, 1) -File @>>>>>>>> @>>>>>/s +File @>>>>>>>> @>>>>>/s make_short($stats{'Created_tmp_files'}), t($stats{'Created_tmp_files'}) . -format TAB = +format THREADS = __ Threads _____________________________________________________________ -Running @>>>>>>>> of @>>> +Running @>>>>>>>> of @>>>>> $stats{'Threads_running'}, $stats{'Threads_connected'} -Cached @>>>>>>>> of @>>> %Hit: @>>>>> -$stats{'Threads_cached'}, $vars{'thread_cache_size'}, make_short(100 - perc($stats{'Threads_created'}, $stats{'Connections'})) -Created @>>>>>>>> @>>>>>/s +Created @>>>>>>>> @>>>>>/s make_short($stats{'Threads_created'}), t($stats{'Threads_created'}) -Slow @>>>>>>>> @>>>>>/s +Slow @>>>>>>>> @>>>>>/s $stats{'Slow_launch_threads'}, t($stats{'Slow_launch_threads'}) +. + +format THREADPERCONNECTION = +Cached @>>>>>>>> of @>>>>> %Hit: @>>>>> +$stats{'Threads_cached'}, $vars{'thread_cache_size'}, make_short(100 - perc($stats{'Threads_created'}, $stats{'Connections'})) +. + +format THREADPOOL = +Threadpool @>>>>>>>> of @>>>>> %Used: @>>>>> +$stats{'Threadpool_threads'} + $stats{'Threadpool_idle_threads'}, $vars{'thread_pool_max_threads'}, make_short(perc($stats{'Threadpool_threads'} + $stats{'Threadpool_idle_threads'}, $vars{'thread_pool_max_threads'})) + Running @>>>>>>>> of @>>>>> %Running: @>>>>> +$stats{'Threadpool_threads'}, $vars{'thread_pool_max_threads'}, make_short(perc($stats{'Threadpool_threads'}, $vars{'thread_pool_max_threads'})) + Idle @>>>>>>>> of @>>>>> %Idle: @>>>>> +$stats{'Threadpool_idle_threads'}, $vars{'thread_pool_max_threads'}, make_short(perc($stats{'Threadpool_idle_threads'}, $vars{'thread_pool_max_threads'})) +. + +format TAB = __ Aborted _____________________________________________________________ -Clients @>>>>>>>> @>>>>>/s +Clients @>>>>>>>> @>>>>>/s make_short($stats{'Aborted_clients'}), t($stats{'Aborted_clients'}) -Connects @>>>>>>>> @>>>>>/s +Connects @>>>>>>>> @>>>>>/s make_short($stats{'Aborted_connects'}), t($stats{'Aborted_connects'}) __ Bytes _______________________________________________________________ -Sent @>>>>>>>> @>>>>>/s +Sent @>>>>>>>> @>>>>>/s make_short($stats{'Bytes_sent'}), t($stats{'Bytes_sent'}) -Received @>>>>>>>> @>>>>>/s +Received @>>>>>>>> @>>>>>/s make_short($stats{'Bytes_received'}), t($stats{'Bytes_received'}) . format IB = __ InnoDB Buffer Pool __________________________________________________ -Usage @>>>>>> of @>>>>>> %Used: @>>>>> +Usage @>>>>>> of @>>>>>> %Usage: @>>>>> make_short($ib_bp_used, 1), make_short($ib_bp_total, 1), perc($ib_bp_used, $ib_bp_total) Read hit @>>>>>% $ib_bp_read_ratio; Pages - Free @>>>>>>>> %Total: @>>>>> + Free @>>>>>>>> %Total: @>>>>> make_short($stats{'Innodb_buffer_pool_pages_free'}), perc($stats{'Innodb_buffer_pool_pages_free'}, $stats{'Innodb_buffer_pool_pages_total'}) - Data @>>>>>>>> @>>>>> %Drty: @>>>>> + Data @>>>>>>>> @>>>>> %Drty: @>>>>> make_short($stats{'Innodb_buffer_pool_pages_data'}), perc($stats{'Innodb_buffer_pool_pages_data'}, $stats{'Innodb_buffer_pool_pages_total'}), perc($stats{'Innodb_buffer_pool_pages_dirty'}, $stats{'Innodb_buffer_pool_pages_data'}) - Misc @>>>>>>>> @>>>>> + Misc @>>>>>>>> @>>>>> $stats{'Innodb_buffer_pool_pages_misc'}, perc($stats{'Innodb_buffer_pool_pages_misc'}, $stats{'Innodb_buffer_pool_pages_total'}) - Latched @>>>>>>>> @>>>>> + Latched @>>>>>>>> @>>>>> $stats{'Innodb_buffer_pool_pages_latched'}, perc($stats{'Innodb_buffer_pool_pages_latched'}, $stats{'Innodb_buffer_pool_pages_total'}) -Reads @>>>>>>>> @>>>>>/s +Reads @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_buffer_pool_read_requests'}), t($stats{'Innodb_buffer_pool_read_requests'}) - From file @>>>>>>>> @>>>>>/s @>>>>> + From disk @>>>>>>>> @>>>>>/s %Disk: @>>>>> make_short($stats{'Innodb_buffer_pool_reads'}), t($stats{'Innodb_buffer_pool_reads'}), perc($stats{'Innodb_buffer_pool_reads'}, $stats{'Innodb_buffer_pool_read_requests'}) - Ahead Rnd @>>>>>>>> @>>>>>/s + Ahead Rnd @>>>>>>>> @>>>>>/s $stats{'Innodb_buffer_pool_read_ahead_rnd'}, t($stats{'Innodb_buffer_pool_read_ahead_rnd'}) - Ahead Sql @>>>>>>>> @>>>>>/s -$stats{'Innodb_buffer_pool_read_ahead_seq'}, t($stats{'Innodb_buffer_pool_read_ahead_seq'}) -Writes @>>>>>>>> @>>>>>/s +# Ahead Sql @>>>>>>>> @>>>>>/s +#$stats{'Innodb_buffer_pool_read_ahead_seq'}, t($stats{'Innodb_buffer_pool_read_ahead_seq'}) +Writes @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_buffer_pool_write_requests'}), t($stats{'Innodb_buffer_pool_write_requests'}) -Flushes @>>>>>>>> @>>>>>/s +Wait Free @>>>>>>>> @>>>>>/s %Wait: @>>>>> +$stats{'Innodb_buffer_pool_wait_free'}, t($stats{'Innodb_buffer_pool_wait_free'}), perc($stats{'Innodb_buffer_pool_wait_free'}, $stats{'Innodb_buffer_pool_write_requests'}) +Flushes @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_buffer_pool_pages_flushed'}), t($stats{'Innodb_buffer_pool_pages_flushed'}) -Wait Free @>>>>>>>> @>>>>>/s -$stats{'Innodb_buffer_pool_wait_free'}, t($stats{'Innodb_buffer_pool_wait_free'}) +. + +format IB_XTRADB = + LRU @>>>>>>>> @>>>>>/s %LRU: @>>>>> +make_short($stats{'Innodb_buffer_pool_pages_lru_flushed'}), t($stats{'Innodb_buffer_pool_pages_lru_flushed'}), perc($stats{'Innodb_buffer_pool_pages_lru_flushed'}, $stats{'Innodb_buffer_pool_pages_flushed'}) . format IB_LOCK = __ InnoDB Lock _________________________________________________________ -Waits @>>>>>>>> @>>>>>/s +Waits @>>>>>>>> @>>>>>/s $stats{'Innodb_row_lock_waits'}, t($stats{'Innodb_row_lock_waits'}) Current @>>>>>>>> $stats{'Innodb_row_lock_current_waits'} @@ -1260,15 +1532,20 @@ $stats{'Innodb_row_lock_time_avg'} $stats{'Innodb_row_lock_time_max'} . +format IB_LOCK_XTRADB = +Trx history @>>>>>>>> +make_short($stats{'Innodb_history_list_length'}) +. + format IB_DPR = __ InnoDB Data, Pages, Rows ____________________________________________ Data - Reads @>>>>>>>> @>>>>>/s + Reads @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_data_reads'}), t($stats{'Innodb_data_reads'}) - Writes @>>>>>>>> @>>>>>/s + Writes @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_data_writes'}), t($stats{'Innodb_data_writes'}) - fsync @>>>>>>>> @>>>>>/s + fsync @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_data_fsyncs'}), t($stats{'Innodb_data_fsyncs'}) Pending Reads @>>>>>>>> @@ -1279,20 +1556,71 @@ $stats{'Innodb_data_pending_writes'}, t($stats{'Innodb_data_pending_writes'}) $stats{'Innodb_data_pending_fsyncs'}, t($stats{'Innodb_data_pending_fsyncs'}) Pages - Created @>>>>>>>> @>>>>>/s + Created @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_pages_created'}), t($stats{'Innodb_pages_created'}) - Read @>>>>>>>> @>>>>>/s + Read @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_pages_read'}), t($stats{'Innodb_pages_read'}) - Written @>>>>>>>> @>>>>>/s + Written @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_pages_written'}), t($stats{'Innodb_pages_written'}) Rows - Deleted @>>>>>>>> @>>>>>/s + Deleted @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_rows_deleted'}), t($stats{'Innodb_rows_deleted'}) - Inserted @>>>>>>>> @>>>>>/s + Inserted @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_rows_inserted'}), t($stats{'Innodb_rows_inserted'}) - Read @>>>>>>>> @>>>>>/s + Read @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_rows_read'}), t($stats{'Innodb_rows_read'}) - Updated @>>>>>>>> @>>>>>/s + Updated @>>>>>>>> @>>>>>/s make_short($stats{'Innodb_rows_updated'}), t($stats{'Innodb_rows_updated'}) . + +format PAGECACHE_BUFF_MAX = + +__ Aria Pagecache ______________________________________________________ +Buffer used @>>>>>> of @>>>>>> %Used: @>>>>> +make_short($pagecache_buffer_used, 1), make_short($vars{'aria_pagecache_buffer_size'}, 1), perc($pagecache_buffer_used, $vars{'aria_pagecache_buffer_size'}) +. + +format PAGECACHE_BUFF_USAGE = + Current @>>>>>> %Usage: @>>>>> +make_short($pagecache_buffer_usage, 1), perc($pagecache_buffer_usage, $vars{'aria_pagecache_buffer_size'}) +. + +format PAGECACHE_RATIOS = +Write hit @>>>>>% +$pagecache_write_ratio +Read hit @>>>>>% +$pagecache_read_ratio +. + +format BINLOG = + +__ Binary Log Cache _____________________________________________________ +Disk use + Transactional @>>>>>% +perc($binlog_cache_ratio) + Non transactional @>>>>>% +perc($binlog_stmt_cache_ratio) +. + +format TOKUDB = + +__ TokuDB ______________________________________________________________ +Cachetable @>>>>>> of @>>>>>> %Usage: @>>>>> +make_short($stats{Tokudb_cachetable_size_current}, 1), make_short($vars{tokudb_cache_size}, 1), perc($stats{Tokudb_cachetable_size_current}, $vars{tokudb_cache_size}) + Miss @>>>>>> @>>>>>/s +make_short($stats{'Tokudb_cachetable_miss'}), t($stats{'Tokudb_cachetable_miss'}) + Evictions @>>>>>> @>>>>>/s +make_short($stats{'Tokudb_cachetable_evictions'}), t($stats{'Tokudb_cachetable_evictions'}) +. + +format ROWS = + +__ Rows ________________________________________________________________ +Rows @>>>>>>>> @>>>>>/s +make_short($rows), t($rows) + Using idx @>>>>>>>> @>>>>>/s %Index: @>>>>> +make_short($rows_using_indexes), t($rows_using_indexes), perc($rows_using_indexes,$rows) +Rows/question @>>>>>> +make_short($rows/$questions) +. diff --git a/debian/mariadb-client-10.2.README.Debian b/debian/mariadb-client-10.2.README.Debian index b245638f9c9..64f0f509951 100644 --- a/debian/mariadb-client-10.2.README.Debian +++ b/debian/mariadb-client-10.2.README.Debian @@ -1,4 +1,4 @@ FAQ: -Q: My <tab> completition is gone, why? +Q: My <tab> completion is gone, why? A: You have "no-auto-rehash" in the "[mysql]" section of /etc/mysql/my.cnf! |