Teil von  SELFPHP   Teil von  Code Snippets / MySQL / Datenbank Wartung
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Tabellen in einer MySQL-Datenbank analysieren





Beispielaufgabe

Tabellen in einer MySQL-Datenbank analysieren.



Beschreibung

Die Funktion mysqlAnalyzeTables() analysiert in einer Datenbank alle Tabellen und liefert den Zustand. Als Rückgabewert liefert die Funktion ein Array mit folgenden Werten für jede analysierte Tabelle.
  • Table: Der Tabellenname in der Form <Datenbankname>.<Tabellenname>
  • Op: Die Art der Aufgabe - hier immer analyze
  • Msg_type: Den Typ der Meldung - status, error, info oder warning
  • Msg_text: Die zurückgelieferte Meldung

Folgendes ist bei dieser Funktion zu beachten:
  • Der MySQL-Befehl ANALYZE TABLE funktioniert nur bei MyISAM-, BDB- und InnoDB-Tabellen.
  • Die Tabellen werden während der Laufzeit von ANALYZE TABLE mit einer Lesesperre versehen, daher ist es ratsam diese Funktion zu Zeiten aufzurufen, in der nicht viele Zugriffe auf die Tabelle stattfinden.




<?PHP 

function mysqlAnalyzeTables$database ) {
    
    
$sql "SHOW TABLES FROM " $database;
        
    
$result = @mysql_query$sql );
    
    
$data = array();
    
    
$x 0;
    
    while( ( 
$row = @mysql_fetch_array$resultMYSQL_NUM ) ) == true ){
        
            
$sql "ANALYZE TABLE " $database '.' $row[0];
            
            
$analyze = @mysql_query$sql );
            
            
$rowFetch = @mysql_fetch_array$analyzeMYSQL_ASSOC );
            
            
$data[$x]['Table'] = $rowFetch["Table"];
            
$data[$x]['Op'] = $rowFetch["Op"];
            
$data[$x]['Msg_type'] = $rowFetch["Msg_type"];
            
$data[$x]['Msg_text'] = $rowFetch["Msg_text"];
            
            
$x++;
                
    }
    
    return 
$data;
    
}

?>



Anwendungsbeispiel

<?PHP

$conn 
= @mysql_connect("localhost""mysql_user""mysql_password");

if (!
$conn) {
    echo 
"Fehlende Verbindung zur DB: " mysql_error();
    exit;
}

// Datenbankname
$database 'selfphp-testdb';

print_rmysqlAnalyzeTables$database ) );

?>



Ausgabebeispiel: Browseransicht

Array
(
    [0] => Array
        (
            [Table] => mysql.columns_priv
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [1] => Array
        (
            [Table] => mysql.db
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => OK
        )

    [2] => Array
        (
            [Table] => mysql.event
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [3] => Array
        (
            [Table] => mysql.func
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [4] => Array
        (
            [Table] => mysql.general_log
            [Op] => analyze
            [Msg_type] => note
            [Msg_text] => The storage engine for the table doesn't support analyze
        )

    [5] => Array
        (
            [Table] => mysql.help_category
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => OK
        )

    [6] => Array
        (
            [Table] => mysql.help_keyword
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => OK
        )

    [7] => Array
        (
            [Table] => mysql.help_relation
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => OK
        )

    [8] => Array
        (
            [Table] => mysql.help_topic
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [9] => Array
        (
            [Table] => mysql.host
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [10] => Array
        (
            [Table] => mysql.ndb_binlog_index
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [11] => Array
        (
            [Table] => mysql.plugin
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [12] => Array
        (
            [Table] => mysql.proc
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [13] => Array
        (
            [Table] => mysql.procs_priv
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [14] => Array
        (
            [Table] => mysql.servers
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [15] => Array
        (
            [Table] => mysql.slow_log
            [Op] => analyze
            [Msg_type] => note
            [Msg_text] => The storage engine for the table doesn't support analyze
        )

    [16] => Array
        (
            [Table] => mysql.tables_priv
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [17] => Array
        (
            [Table] => mysql.time_zone
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [18] => Array
        (
            [Table] => mysql.time_zone_leap_second
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [19] => Array
        (
            [Table] => mysql.time_zone_name
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [20] => Array
        (
            [Table] => mysql.time_zone_transition
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [21] => Array
        (
            [Table] => mysql.time_zone_transition_type
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => Table is already up to date
        )

    [22] => Array
        (
            [Table] => mysql.user
            [Op] => analyze
            [Msg_type] => status
            [Msg_text] => OK
        )

)






 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner LeaseWeb Germany GmbH
Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt