【发布时间】:2014-06-25 14:37:20
【问题描述】:
据MySQL Performance Blog 称,昨天(5 月 6 日)宣布的新 Percona 服务器都包含 MySQL 审计插件的开源版本。
我要完成的任务是:在单个更新查询运行期间记录受级联触发器执行影响的表。例如。当UPDATE MY_TABLE …被执行时,触发器{BEFORE,AFTER}_UPDATE可能会更新其他表,这些表上可能有自己的触发器等。
目前我使用国内的解决方案;在 all 触发器中,我放了 smth 之类的:
IF (
SELECT count(*)
FROM `information_schema`.`ROUTINES`
WHERE specific_name = 'my_own_log'
AND routine_schema = 'my_schema'
) > 0 THEN
CALL my_own_log ('FOO_TRIGGER', 'Hi, I’m to update MY_TABLE') ;
END IF ;
在生产中,我没有定义 my_own_log 过程,并且由于 information_schema 表已经过优化,我不会产生任何性能损失。
问题是我是否可以切换到企业解决方案(上述audit 插件)以获取有关哪些表受到级联触发器执行影响的信息。 JFYI:我发现的唯一类似问题 here 没有提供适用的答案。
感谢您的任何建议。
【问题讨论】: