我知道显而易见的答案是否定的。但是,在表上触发insert
,update
或delete
触发器会以任何方式影响同一个表的select语句吗?做mysql触发器会为select语句产生额外的开销吗?
2
A
回答
2
号100%
MySQL的过程触发仅在sql_delete.cc,sql_insert.cc和sql_update.cc。
在mysql-5.5/sql目录中查看源代码。例如在http://bazaar.launchpad.net/~mysql/mysql-server/5.5/view/head:/sql/sql_insert.cc搜索字符串“> process_triggers”。它是一个抽象插入,与具体的处理程序实现无关。
当我们查看http://bazaar.launchpad.net/~mysql/mysql-server/5.5/view/head:/sql/sql_select.cc处的“选择”部分源代码时,我们不会在代码中看到任何地方“触发”(在评论中只有3次)。
因此,我可以正式向您报告,在选择触发器期间不受任何影响 - 仅在DML语句中。
ps:请参阅http://dev.mysql.com/doc/internals/en/guided-tour-skeleton.html以了解从鸟瞰到的MySQL内部结构。
相关问题
- 1. 使用SELECT语句的MySQL触发器
- 2. MySQL的触发IF语句错误(不会产生)
- 3. MySQL的触发与SELECT语句
- 4. MySQL触发嵌套select语句
- 5. MySQL触发器IF语句
- 6. count(*)对正常的select语句和触发器产生不同的结果
- 7. SELECT语句显示额外的列
- 8. create ... select语句中的外键约束会发生什么?
- 9. 触发器内select语句中的MySQL错误
- 10. 如何在JOIN中包含额外的select语句? PHP - MySQL的
- 11. 我可以在mysql中的select语句上启动触发器吗?
- 12. MySQL触发器中的IF语句
- 13. Python的 - 继承调用方法时产生额外的语句
- 14. 通过Web服务将文件作为字节数组发送时,会产生多少额外开销?
- 15. MySQL IF语句触发内UPDATE语句
- 16. RestKit:addSQLitePersistentStoreAtPath会产生额外的记录
- 17. MySQL Select语句
- 18. Mysql select语句
- 19. MYSQL SELECT语句
- 20. MYSQL触发器产生1329错误
- 21. Select mySql的语句
- 22. mysql的select语句
- 23. 无论如何为“SELECT”语句创建SQL Server DDL触发器?
- 24. 删除触发器后MySQL select语句导致结果总是为空
- 25. Arduino:UDP发送产生额外的字符
- 26. 做冗余命名空间会产生任何开销
- 27. 是否有可能在MySQL的select语句上触发?
- 28. 我可以在实际触发语句之前执行MySQL触发器吗?
- 29. select语句意外
- 30. 为什么rails select会生成额外的div区块?
我对这个问题的直接反应是,如果你走到我的办公桌前问我会是“你为什么问?”。如果只是好奇心,那么简单的“否”就足够了,但这听起来像是[XY问题]的表现(http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)对我来说... – DaveRandom