Seite 1 von 1
wo wird die datenbank-größe im acp abgerufen?
Verfasst: 26.01.2005 22:42
von rabbit
und wie kann ich alle db-tabellen dort mit einbeziehen, denn derzeit zeigt die statistik bei mir nur die gesamtgröße der standard-tabellen des phpBB an, ich habe aber noch 77 andere...
daher hätte ich gerne die stats aus allen tabellen, um einen realistischen wert zu bekommen und nicht ständig via phpMyAdmin nachgucken zu müssen.
TIA!

Verfasst: 27.01.2005 21:13
von saerdnaer
dürfte die admin/index.php sein
Verfasst: 27.01.2005 22:35
von rabbit
das dachte ich mir schon, was ich aber wissen möchte ist: wie stelle ich es an, dass wirklich alle tabellen dort in die statistik aufgenommen werden?
vermute mal, es ist dieser code in der admin/index.php, allerdings sehe ich dort keine explizite erwähnung, welche tabellen nun in die stats mit einfließen...
Code: Alles auswählen
//
// DB size ... MySQL only
//
// This code is heavily influenced by a similar routine
// in phpMyAdmin 2.2.0
//
if( preg_match("/^mysql/", SQL_LAYER) )
{
$sql = "SELECT VERSION() AS mysql_version";
if($result = $db->sql_query($sql))
{
$row = $db->sql_fetchrow($result);
$version = $row['mysql_version'];
if( preg_match("/^(3\.23|4\.)/", $version) )
{
$db_name = ( preg_match("/^(3\.23\.[6-9])|(3\.23\.[1-9][1-9])|(4\.)/", $version) ) ? "`$dbname`" : $dbname;
$sql = "SHOW TABLE STATUS
FROM " . $db_name;
if($result = $db->sql_query($sql))
{
$tabledata_ary = $db->sql_fetchrowset($result);
$dbsize = 0;
for($i = 0; $i < count($tabledata_ary); $i++)
{
if( $tabledata_ary[$i]['Type'] != "MRG_MyISAM" )
{
if( $table_prefix != "" )
{
if( strstr($tabledata_ary[$i]['Name'], $table_prefix) )
{
$dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length'];
}
}
else
{
$dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length'];
}
}
}
} // Else we couldn't get the table status.
}
else
{
$dbsize = $lang['Not_available'];
}
}
else
{
$dbsize = $lang['Not_available'];
}
}
else if( preg_match("/^mssql/", SQL_LAYER) )
{
$sql = "SELECT ((SUM(size) * 8.0) * 1024.0) as dbsize
FROM sysfiles";
if( $result = $db->sql_query($sql) )
{
$dbsize = ( $row = $db->sql_fetchrow($result) ) ? intval($row['dbsize']) : $lang['Not_available'];
}
else
{
$dbsize = $lang['Not_available'];
}
}
else
{
$dbsize = $lang['Not_available'];
}
if ( is_integer($dbsize) )
{
if( $dbsize >= 1048576 )
{
$dbsize = sprintf("%.2f MB", ( $dbsize / 1048576 ));
}
else if( $dbsize >= 1024 )
{
$dbsize = sprintf("%.2f KB", ( $dbsize / 1024 ));
}
else
{
$dbsize = sprintf("%.2f Bytes", $dbsize);
}
}
Verfasst: 29.01.2005 09:26
von rabbit
*UP*

Verfasst: 29.01.2005 09:35
von kratzer54847
genau genommen hier:
Code: Alles auswählen
if( $table_prefix != "" )
{
if( strstr($tabledata_ary[$i]['Name'], $table_prefix) )
{
$dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length'];
}
}
else
{
$dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length'];
}
das Problem liegt dann nämlich hier:
denn der Table Prefix wird ja ursprünglich in der config.php gesetzt
Verfasst: 29.01.2005 13:02
von rabbit
tja, das problem ist dann sicher der forum-AI (bot), der hat nämlich einen anderen prefix als die anderen tabellen und nimmt auch den größten platz der db ein aufgrund von ca. 100 installierten .aiml-files...
wie könnte man es anstellen, dass in den acp-stats auch diese tabellen angezeigt bzw. mit einbezogen werden?
Verfasst: 30.01.2005 17:05
von rabbit
*UP*
Verfasst: 31.01.2005 16:21
von rabbit
*UP*
Verfasst: 01.02.2005 16:39
von rabbit
*UP*
Verfasst: 02.02.2005 12:25
von Budman
Hallo!
Ist vielleicht ein sehr laienhafter Ansatz, aber könnte man nicht das table_prefix in der config.php um Dein zusätzlich verwendetes ergänzen?
Code: Alles auswählen
if( $table_prefix != "" )
{
if( strstr($tabledata_ary[$i]['Name'], $table_prefix) ) // hier wird doch geprüft...
{
$dbsize += $tabledata_ary[$i]['Data_length'] + $tabledata_ary[$i]['Index_length'];
}
}
Aber ich denke, auf die Idee wirst Du auch schon gekommen sein...
Gruss Bud