Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql触发器性能与php手动插入_Mysql_Triggers - Fatal编程技术网

Mysql触发器性能与php手动插入

Mysql触发器性能与php手动插入,mysql,triggers,Mysql,Triggers,我想在某些表上插入后创建一个通知。例如,每当用户插入注释时,我都会向管理员发出通知,告知该用户已创建注释 我过去常常在PHP中手动执行,没有那么糟糕,是这样的: // after the comment is created Notification::create(....); 不错,但有时我会让用户能够添加图像、帖子等等。因此,我必须记住每次插入通知 因此,我考虑改用mysql触发器。但我担心这将如何影响性能 最后一件事,是否可以在多个表上插入后创建触发器 谢谢 可以在多个表上插入后创建触

我想在某些表上插入后创建一个通知。例如,每当用户插入注释时,我都会向管理员发出通知,告知该用户已创建注释

我过去常常在PHP中手动执行,没有那么糟糕,是这样的:

// after the comment is created
Notification::create(....);
不错,但有时我会让用户能够添加图像、帖子等等。因此,我必须记住每次插入通知

因此,我考虑改用mysql触发器。但我担心这将如何影响性能

最后一件事,是否可以在多个表上插入后创建触发器

谢谢

可以在多个表上插入后创建触发器吗

不,这是不可能的。您必须为每个表创建一个单独的触发器

我担心这会对性能产生什么影响

就性能而言,这不应该是一场灾难,尽管通过引入触发器,您人为地延长了表上的插入/更新操作(
images
posts
,…),从而有效地增加了锁定时间

但绩效并不是唯一考虑的因素。可维护性也应该很重要。通过创建触发器,您可以将应用程序逻辑分散在应用程序和数据库之间。这很难测试。触发器经常被忘记,例如,当您传输模式或生成转储时。有时候你不希望他们在你的桌子上做一些维护DML时开火。但是MySQL缺乏这种能力。你必须为此采取变通办法


底线:考虑不使用触发器,除非您必须使用.< /P>什么<代码>通知::创建(…);<代码>是什么?写入一些

通知
表或其他内容?在通知表中插入新通知谢谢,但我使用的是提供db迁移的PHP框架。所以我不认为我可以忘记触发器,因为它们是作为迁移文件在我的应用程序中创建的,我不想担心在我的应用程序中处理通知之类的事情,我希望数据库为我处理它。