2016-05-01 14 views
2

Gibt es eine Möglichkeit, die Ausgabe von SHOW STATUS direkt in eine Tabelle in MySQL einzufügen?mysql: Umleitung SHOW STATUS in Tabelle

INSERT INTO showstatus (name, value) SHOW STATUS oder ähnliche funktionieren nicht.

Vielleicht ist die einzige Alternative, Abfrage Inhalt in Textdatei zu exportieren und dann den Inhalt dieser Datei in die Tabelle zu laden?

Oder gibt es vielleicht eine andere Möglichkeit, die Statusvariablen von mysql kontinuierlich (täglich) zu verfolgen?

Antwort

1

könnten Sie INFORMATION_SCHEMA GLOBAL_STATUS/SESSION_STATUS Tabellen verwenden:

CREATE TABLE showstatus(ID INT PRIMARY KEY AUTO_INCREMENT, 
         VARIABLE_NAME VARCHAR(1000), 
         VARIABLE_VALUE VARCHAR(1000), 
         tm TIMESTAMP DEFAULT CURRENT_TIMESTAMP); 

INSERT INTO showstatus (variable_name, variable_value) 
SELECT variable_name, variable_value 
FROM INFORMATION_SCHEMA.GLOBAL_STATUS 
UNION ALL 
SELECT variable_name, variable_value 
FROM INFORMATION_SCHEMA.SESSION_STATUS; 

SqlFiddleDemo

Beachten Sie, dass Spalte hinzufügen sollten Zeitstempel verfolgen, wenn Snapshot erstellt wurde.