為什么說觸發器是低效的,占用服務器資源,應當少用觸發器?
觸發器的效率是否跟所執行的業務邏輯成正比?如果此表不涉及批量操作,并且觸發器所執行的業務邏輯也比較簡單,是否就不存在我剛才說的 "觸發器是低效的,占用服務器資源" 這一說法?
uj5u.com熱心網友回復:
觸發器不要濫用,這是共識。先說說觸發器的缺點。
1. 影響表的增刪改操作,操作時間延長,甚至導致失敗。
2. 邏輯變復雜。在程式員不了解的情況下,出了問題很難跟蹤。事實上,大部分程式員可能都不了解觸發器,出了問題基本上都不會往這個方向想。
但觸發器并不是一無是處,某些特殊情況下用一用還是可以的, 注意事項:
1. 盡量不要在主要的業務表上用;
2. 觸發器的邏輯千萬不要復雜,盡可能簡單,更不允許有出錯的可能,特別是不要操作遠程的表或其它物件;
3. 創建了觸發器,所有開發人員都應知曉其存在,并了解其功能。
再來回答你的問題:
A. 低效?
-- 比原來的效率低是一定的,低多少要看邏輯,如果邏輯簡單,可能只低20%~30%,復雜就難說了;
B. 占用服務器資源?
-- 這個談不上多少。主要是時間延長,如果是繁忙的表,鎖的情況會復雜。
C. 觸發器的效率是否跟所執行的業務邏輯成正比?
-- 觸發器業務簡單,效率就高,反之則低。
D. 如果此表不涉及批量操作,并且觸發器所執行的業務邏輯也比較簡單,是否就不存在我剛才說的 "觸發器是低效的,占用服務器資源" 這一說法?
-- 效率降低是肯定的,多少會有。
總之,如果不是很重要的表,那你就試一下,根據實際情況來吧,觀察一段時間就好。
一般來說,不重要的表,觸發器邏輯簡單,是沒什么的問題的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/277245.html
標籤:應用實例
上一篇:Mybatisplus如何使用lambdaQueryWraper實作去重
下一篇:生產排程排序演算法,高手接招
