有没有办法直接将SHOW STATUS
的输出插入到mysql的表中?
INSERT INTO showstatus (name, value) SHOW STATUS
或类似的不起作用。
也许唯一的选择是将查询内容导出到文本文件中,然后将该文件的内容加载到表中?
或许还有另一种方法可以连续(每天)跟踪mysql的状态变量?
答案 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
强>
请注意,您应该在创建快照时添加列以跟踪时间戳。