Skip to content

Commit

Permalink
Merge pull request #524 from grooverdan/aria_myisam
Browse files Browse the repository at this point in the history
Aria/MyISAM cleanup
  • Loading branch information
jmrenouard committed Jan 27, 2021
2 parents 9a9ff55 + 99e5c83 commit 3a7bf40
Showing 1 changed file with 26 additions and 44 deletions.
70 changes: 26 additions & 44 deletions mysqltuner.pl
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ sub pretty_uptime {
}

# Retrieves the memory installed on this machine
my ( $physical_memory, $swap_memory, $duflags );
my ( $physical_memory, $swap_memory, $duflags, $xargsflags );

sub memerror {
badprint
Expand All @@ -414,6 +414,7 @@ sub memerror {
sub os_setup {
my $os = `uname`;
$duflags = ( $os =~ /Linux/ ) ? '-b' : '';
$xargsflags = ( $os =~ /Darwin|SunOS/ ) ? '' : '-r';
if ( $opt{'forcemem'} > 0 ) {
$physical_memory = $opt{'forcemem'} * 1048576;
infoprint "Assuming $opt{'forcemem'} MB of physical memory";
Expand Down Expand Up @@ -2562,30 +2563,23 @@ sub calculations {
my $size = 0;
$size += (split)[0]
for
`find $myvar{'datadir'} -name "*.MYI" 2>&1 | xargs du -L $duflags 2>&1`;
`find "$myvar{'datadir'}" -name "*.MYI" -print0 2>&1 | xargs $xargsflags -0 du -L $duflags 2>&1`;
$mycalc{'total_myisam_indexes'} = $size;
$mycalc{'total_aria_indexes'} = 0;
$size = 0 + (split)[0]
for
`find "$myvar{'datadir'}" -name "*.MAI" -print0 2>&1 | xargs $xargsflags -0 du -L $duflags 2>&1`;
$mycalc{'total_aria_indexes'} = $size;
}
elsif ( mysql_version_ge(5) ) {
$mycalc{'total_myisam_indexes'} = select_one
"SELECT IFNULL(SUM(INDEX_LENGTH),0) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema') AND ENGINE = 'MyISAM';";
$mycalc{'total_aria_indexes'} = select_one
"SELECT IFNULL(SUM(INDEX_LENGTH),0) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('information_schema') AND ENGINE = 'Aria';";
}
if ( defined $mycalc{'total_myisam_indexes'}
and $mycalc{'total_myisam_indexes'} == 0 )
{
$mycalc{'total_myisam_indexes'} = "fail";
}
elsif ( defined $mycalc{'total_myisam_indexes'} ) {
if ( defined $mycalc{'total_myisam_indexes'} ) {
chomp( $mycalc{'total_myisam_indexes'} );
}
if ( defined $mycalc{'total_aria_indexes'}
and $mycalc{'total_aria_indexes'} == 0 )
{
$mycalc{'total_aria_indexes'} = 1;
}
elsif ( defined $mycalc{'total_aria_indexes'} ) {
if ( defined $mycalc{'total_aria_indexes'} ) {
chomp( $mycalc{'total_aria_indexes'} );
}

Expand Down Expand Up @@ -3390,19 +3384,11 @@ sub mysql_myisam {
}

# Key buffer
if ( !defined( $mycalc{'total_myisam_indexes'} ) and $doremote == 1 ) {
if ( !defined( $mycalc{'total_myisam_indexes'} ) ) {
push( @generalrec,
"Unable to calculate MyISAM indexes on remote MySQL server < 5.0.0"
"Unable to calculate MyISAM index size on MySQL server < 5.0.0"
);
}
elsif ( $mycalc{'total_myisam_indexes'} =~ /^fail$/ ) {
badprint
"Cannot calculate MyISAM index size - re-run script as root user";
}
elsif ( $mycalc{'total_myisam_indexes'} == "0" ) {
badprint
"None of your MyISAM tables are indexed - add indexes immediately";
}
else {
if ( $myvar{'key_buffer_size'} < $mycalc{'total_myisam_indexes'}
&& $mycalc{'pct_keys_from_mem'} < 95 )
Expand Down Expand Up @@ -5032,31 +5018,27 @@ sub mysqsl_pfs {

}

# Recommendations for Ariadb
sub mariadb_ariadb {
subheaderprint "AriaDB Metrics";
# Recommendations for Aria Engine
sub mariadb_aria {
subheaderprint "Aria Metrics";

# AriaDB
unless ( defined $myvar{'have_aria'}
and $myvar{'have_aria'} eq "YES" )
# Aria
if ( ! defined $myvar{'have_aria'} )
{
infoprint "Aria Storage Engine not available.";
return;
}
if ( $myvar{'have_aria'} ne "YES" )
{
infoprint "AriaDB is disabled.";
infoprint "Aria Storage Engine is disabled.";
return;
}
infoprint "AriaDB is enabled.";
infoprint "Aria Storage Engine is enabled.";

# Aria pagecache
if ( !defined( $mycalc{'total_aria_indexes'} ) and $doremote == 1 ) {
if ( !defined( $mycalc{'total_aria_indexes'} ) ) {
push( @generalrec,
"Unable to calculate Aria indexes on remote MySQL server < 5.0.0" );
}
elsif ( $mycalc{'total_aria_indexes'} =~ /^fail$/ ) {
badprint
"Cannot calculate Aria index size - re-run script as root user";
}
elsif ( $mycalc{'total_aria_indexes'} == "0" ) {
badprint
"None of your Aria tables are indexed - add indexes immediately";
"Unable to calculate Aria index size on MySQL server" );
}
else {
if (
Expand Down Expand Up @@ -6389,7 +6371,7 @@ sub which {
mariadb_threadpool; # Print MariaDB ThreadPool stats
mysql_myisam; # Print MyISAM stats
mysql_innodb; # Print InnoDB stats
mariadb_ariadb; # Print MariaDB AriaDB stats
mariadb_aria; # Print MariaDB Aria stats
mariadb_tokudb; # Print MariaDB Tokudb stats
mariadb_xtradb; # Print MariaDB XtraDB stats

Expand Down

0 comments on commit 3a7bf40

Please sign in to comment.