mysql:将SHOW STATUS重定向到表中

时间:2016-05-01 12:12:00

标签: mysql

有没有办法直接将SHOW STATUS的输出插入到mysql的表中?

INSERT INTO showstatus (name, value) SHOW STATUS或类似的不起作用。

也许唯一的选择是将查询内容导出到文本文件中,然后将该文件的内容加载到表中?

或许还有另一种方法可以连续(每天)跟踪mysql的状态变量?

1 个答案:

答案 0 :(得分:1)

您可以使用INFORMATION_SCHEMA GLOBAL_STATUS/SESSION_STATUS表:

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

请注意,您应该在创建快照时添加列以跟踪时间戳。