Teil von  SELFPHP   Teil von  Code Snippets / MySQL / Datenbank Wartung
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: SELFPHP Forum ::

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Tabellen in einer MySQL-Datenbank analysieren

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen




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

Pixel X weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Kaspersky Labs GmbH weitere Sponsoren
 


:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Datei in mehrere Dateien aufsplitten

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Schlagwort innerhalb eines Strings farblich hervorheben

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt