You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
my@dblist = select_array("SELECT DISTINCT TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ( 'mysql', 'performance_schema', 'information_schema', 'sys' );");
5581
5610
infoprint "There is " . scalar(@dblist) . " Database(s).";
5582
5611
my@totaldbinfo = split /\s/,
5583
5612
select_one(
5584
-
"SELECT SUM(TABLE_ROWS), SUM(DATA_LENGTH), SUM(INDEX_LENGTH) , SUM(DATA_LENGTH+INDEX_LENGTH), COUNT(TABLE_NAME),COUNT(DISTINCT(TABLE_COLLATION)),COUNT(DISTINCT(ENGINE)) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ( 'mysql' );"
5613
+
"SELECT SUM(TABLE_ROWS), SUM(DATA_LENGTH), SUM(INDEX_LENGTH) , SUM(DATA_LENGTH+INDEX_LENGTH), COUNT(TABLE_NAME),COUNT(DISTINCT(TABLE_COLLATION)),COUNT(DISTINCT(ENGINE)) FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ( 'mysql', 'performance_schema', 'information_schema', 'sys' );"
"SELECT TABLE_SCHEMA, SUM(TABLE_ROWS), SUM(DATA_LENGTH), SUM(INDEX_LENGTH) , SUM(DATA_LENGTH+INDEX_LENGTH), COUNT(DISTINCT ENGINE),COUNT(TABLE_NAME),COUNT(DISTINCT(TABLE_COLLATION)),COUNT(DISTINCT(ENGINE)) FROM information_schema.TABLES WHERE TABLE_SCHEMA='$_' GROUP BY TABLE_SCHEMA ORDER BY TABLE_SCHEMA"
@@ -5749,6 +5769,58 @@ sub mysql_databases {
5749
5769
5750
5770
}
5751
5771
5772
+
5773
+
# Recommendations for database columns
5774
+
submysql_tables {
5775
+
returnif ( $opt{dbstat} == 0 );
5776
+
5777
+
subheaderprint "Table Column Metrics";
5778
+
unless ( mysql_version_ge( 5, 5 ) ) {
5779
+
infoprint
5780
+
"Skip Database metrics from information schema missing in this version";
5781
+
return;
5782
+
}
5783
+
my@dblist = select_array("SELECT DISTINCT TABLE_SCHEMA FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ( 'mysql', 'performance_schema', 'information_schema', 'sys' );");
5784
+
foreach (@dblist) {
5785
+
my$dbname=$_;
5786
+
nextunlessdefined$_;
5787
+
infoprint "Database: " . $_ . "";
5788
+
my@dbtable = select_array(
5789
+
"SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='$dbname' AND TABLE_TYPE='BASE TABLE' ORDER BY TABLE_NAME"
5790
+
);
5791
+
foreach(@dbtable) {
5792
+
my$tbname=$_;
5793
+
infoprint " +-- TABLE: $tbname";
5794
+
my@tbcol=select_array(
5795
+
"SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$dbname' AND TABLE_NAME='$tbname'" );
5796
+
foreach(@tbcol) {
5797
+
my$ctype=select_one(
5798
+
"SELECT COLUMN_TYPE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$dbname' AND TABLE_NAME='$tbname' AND COLUMN_NAME='$_' " );
5799
+
my$isnull=select_one(
5800
+
"SELECT IS_NULLABLE FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='$dbname' AND TABLE_NAME='$tbname' AND COLUMN_NAME='$_' " );
5801
+
infoprint " +-- Column $tbname.$_:" ;
5802
+
my$current_type=uc($ctype). ($isnulleq'NO'?" NOT NULL":"");
5803
+
my$optimal_type=select_str_g("Optimal_fieldtype", "SELECT $_ FROM $dbname.$tbname PROCEDURE ANALYSE(100000)");
5804
+
5805
+
if ( $current_typene$optimal_type )
5806
+
{
5807
+
infoprint " Current Fieldtype: $current_type";
5808
+
infoprint " Optimal Fieldtype: $optimal_type";
5809
+
badprint
5810
+
"Consider changing type for column $_ in table $dbname.$tbname";
0 commit comments