The same varibale two times? #604

This commit is contained in:
Jean-Marie Renouard 2023-06-22 16:55:58 +02:00
parent 7d57863115
commit 22379c8a6f

View file

@ -3779,6 +3779,32 @@ sub mysql_stats {
# Recommendations for MyISAM
sub mysql_myisam {
subheaderprint "MyISAM Metrics";
my $nb_myisam_tables = select_one(
"SELECT COUNT(*) FROM information_schema.TABLES WHERE ENGINE='MyISAM'");
infoprint("General MyIsam metrics:");
infoprint " +-- Total MyISAM Tables : $nb_myisam_tables";
infoprint " +-- Total MyISAM indexes : "
. hr_bytes( $mycalc{'total_myisam_indexes'} ) if defined($mycalc{'total_myisam_indexes'});
infoprint " +-- KB Size :" . hr_bytes($myvar{'key_buffer_size'});
infoprint " +-- KB Used Size :" .hr_bytes( $myvar{'key_buffer_size'} -
$mystat{'Key_blocks_unused'} * $myvar{'key_cache_block_size'} );
infoprint " +-- KB used :" . $mycalc{'pct_key_buffer_used'} . "%";
infoprint " +-- Read KB hit rate: $mycalc{'pct_keys_from_mem'}% ("
. hr_num( $mystat{'Key_read_requests'} )
. " cached / "
. hr_num( $mystat{'Key_reads'} )
. " reads)";
infoprint " +-- Write KB hit rate: $mycalc{'pct_wkeys_from_mem'}% ("
. hr_num( $mystat{'Key_write_requests'} )
. " cached / "
. hr_num( $mystat{'Key_writes'} )
. " writes)";
if ( $nb_myisam_tables == 0 ) {
infoprint "No MyISAM table(s) detected ....";
return;
}
if ( mysql_version_ge(8) and mysql_version_le(10) ) {
infoprint "MyISAM Metrics are disabled since MySQL 8.0.";
if ( $myvar{'key_buffer_size'} > 0 ) {
@ -3788,15 +3814,26 @@ sub mysql_myisam {
}
return;
}
my $nb_myisam_tables = select_one(
"SELECT COUNT(*) FROM information_schema.TABLES WHERE ENGINE='MyISAM'");
if ( $nb_myisam_tables == 0 ) {
infoprint "No MyISAM table(s) detected ....";
if ( !defined( $mycalc{'total_myisam_indexes'} ) ) {
badprint "Unable to calculate MyISAM index size on MySQL server < 5.0.0";
push( @generalrec,
"Unable to calculate MyISAM index size on MySQL server < 5.0.0" );
return;
}
if ( $mycalc{'pct_key_buffer_used'} == 0 ) {
# No queries have run that would use keys
infoprint "Key buffer used: $mycalc{'pct_key_buffer_used'}% ("
. hr_bytes( $myvar{'key_buffer_size'} -
$mystat{'Key_blocks_unused'} * $myvar{'key_cache_block_size'} )
. " used / "
. hr_bytes( $myvar{'key_buffer_size'} )
. " cache)";
infoprint "No SQL statement based on MyISAM table(s) detected ....";
return
}
# Key buffer usage
if ( $mycalc{'pct_key_buffer_used'} > 0 ) {
if ( $mycalc{'pct_key_buffer_used'} < 90 ) {
badprint "Key buffer used: $mycalc{'pct_key_buffer_used'}% ("
. hr_bytes( $myvar{'key_buffer_size'} -
@ -3815,8 +3852,7 @@ sub mysql_myisam {
)
. ")"
);
}
else {
} else {
goodprint "Key buffer used: $mycalc{'pct_key_buffer_used'}% ("
. hr_bytes( $myvar{'key_buffer_size'} -
$mystat{'Key_blocks_unused'} * $myvar{'key_cache_block_size'}
@ -3825,24 +3861,8 @@ sub mysql_myisam {
. hr_bytes( $myvar{'key_buffer_size'} )
. " cache)";
}
}
else {
# No queries have run that would use keys
debugprint "Key buffer used: $mycalc{'pct_key_buffer_used'}% ("
. hr_bytes( $myvar{'key_buffer_size'} -
$mystat{'Key_blocks_unused'} * $myvar{'key_cache_block_size'} )
. " used / "
. hr_bytes( $myvar{'key_buffer_size'} )
. " cache)";
}
# Key buffer
if ( !defined( $mycalc{'total_myisam_indexes'} ) ) {
push( @generalrec,
"Unable to calculate MyISAM index size on MySQL server < 5.0.0" );
}
else {
# Key buffer size / total MyISAM indexes
if ( $myvar{'key_buffer_size'} < $mycalc{'total_myisam_indexes'}
&& $mycalc{'pct_keys_from_mem'} < 95 )
{
@ -3877,13 +3897,11 @@ sub mysql_myisam {
. " reads)";
}
}
else {
# No queries have run that would use keys
debugprint "Key buffer size / total MyISAM indexes: "
. hr_bytes( $myvar{'key_buffer_size'} ) . "/"
. hr_bytes( $mycalc{'total_myisam_indexes'} ) . "";
}
if ( $mystat{'Key_write_requests'} > 0 ) {
if ( $mycalc{'pct_wkeys_from_mem'} < 95 ) {
badprint
@ -3901,9 +3919,7 @@ sub mysql_myisam {
. hr_num( $mystat{'Key_writes'} )
. " writes)";
}
}
else {
} else {
# No queries have run that would use keys
debugprint
"Write Key buffer hit rate: $mycalc{'pct_wkeys_from_mem'}% ("
@ -3912,7 +3928,6 @@ sub mysql_myisam {
. hr_num( $mystat{'Key_writes'} )
. " writes)";
}
}
}
# Recommendations for ThreadPool