我知道顯而易見的答案是否定的。但是,在表上觸發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