MySQL的查询记录可以通过几种方式查看:
查询日志记录了所有的SQL语句,不论这些语句是否成功执行。默认情况下,这个日志是关闭的,需要手动开启。
开启查询日志:
SET GLOBAL general_log = 'ON';
SET GLOBAL log_output = 'TABLE'; -- 可以是 'TABLE', 'FILE' 或 'NONE'查看查询日志:
SELECT * FROM mysql.general_log;慢查询日志记录了执行时间超过设定阈值的SQL语句。这个日志对于优化数据库性能非常有用。
开启慢查询日志:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2; -- 设置阈值为2秒
SET GLOBAL log_output = 'TABLE'; -- 可以是 'TABLE', 'FILE' 或 'NONE'查看慢查询日志:
SELECT * FROM mysql.slow_log;二进制日志记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。主要用于复制和数据恢复。
查看二进制日志:
SHOW BINARY LOGS;如果你想查看某个特定表的操作记录,可以在表中添加相应的字段来记录操作日志。
示例:
CREATE TABLE user_log (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
action VARCHAR(255),
action_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
DELIMITER $$
CREATE TRIGGER after_user_update
AFTER UPDATE ON users
FOR EACH ROW
BEGIN
INSERT INTO user_log (user_id, action) VALUES (OLD.id, 'updated');
END$$
DELIMITER ;