Adding metrics on worst selectivity index and unused indexes

--idxstat option is needed to activate this features
This commit is contained in:
root 2015-07-02 16:42:53 +02:00
parent 43fd15f00d
commit 70687a62be

View file

@ -1466,6 +1466,29 @@ ENDSQL
infoprint " +-- CARDINALITY : ".$info[4]." distinct values\n"; infoprint " +-- CARDINALITY : ".$info[4]." distinct values\n";
infoprint " +-- NB ROWS : ".$info[5]." rows\n"; infoprint " +-- NB ROWS : ".$info[5]." rows\n";
infoprint " +-- SELECTIVITY : ".$info[6]."%\n"; infoprint " +-- SELECTIVITY : ".$info[6]."%\n";
if ($info[6] < 25) {
badprint "$info[1] has a low selectivity\n";
}
}
return unless (defined($myvar{'performance_schema'}) and $myvar{'performance_schema'} eq 'ON' );
$selIdxReq= <<'ENDSQL';
SELECT CONCAT(CONCAT(object_schema,'.'),object_name) AS 'table', index_name
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE index_name IS NOT NULL
AND count_star =0
AND index_name <> 'PRIMARY'
AND object_schema != 'mysql'
ORDER BY count_star, object_schema, object_name;
ENDSQL
@idxinfo=select_array($selIdxReq);
infoprint "Unsused indexes:\n";
push(@generalrec, "Remove unused indexes.") if (scalar(@idxinfo)>0);
foreach (@idxinfo) {
debugprint "$_\n";
my @info= split /\s/;
badprint "Index: $info[1] on $info[0] is not used.\n";
} }
} }
# Take the two recommendation arrays and display them at the end of the output # Take the two recommendation arrays and display them at the end of the output