簡體   English   中英

什么時候觸發器的性能更好?

[英]When triggers are better in performance?

觸發器的性能何時更好? 例如。

我有一個插入,然后進行更新,從一個表(執行插入操作)中計算總行數,並將值保存在另一個表中。

但我當時在想從PHP運行更新來觸發執行該操作。

什么時候有用,什么時候沒用?

觸發器和過程在性能方面可能比外部系統快得多,這僅僅是因為它們在數據庫內部,因此不必在任何地方發送數據。

是否使用它們以及在什么情況下通常是體系結構的選擇。 也就是說,它們在系統的整個設計中具有多大的可維護性,如果客戶端要升級甚至更改數據庫系統該怎么辦。

因此,您必須先確定設計的優先級,然后再決定是否使用它們。 例如,如果您有大量數據,而速度是最重要的問題,那么觸發器和過程可能是個好主意。 但是,如果可移植性,可維護性和集中式業務邏輯是設計中最重要的功能,那么您很可能不希望使用它們。

另一種選擇是查看諸如休眠之類的抽象概念,以使數據庫實現與軟件脫鈎。

觸發器不用於提高性能,它們用於使操作發生而無需使用存儲過程,函數或檢查約束。

他們被認為是必不可少的罪惡。 因為它們不是table語句的一部分,所以在調試時經常忽略觸發器,這很煩人。

我當時在想從php運行更新來觸發執行該操作。

這將比在觸發器或存儲過程中執行操作更糟糕,因為這意味着從應用程序到數據庫的額外行程。

我將不得不想象觸發速度更快,但是我沒有原始基准。 之所以會更快,是因為限制了與客戶的交談。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM