2013-09-23 41 views
-1

我已經閱讀了幾篇文章和答案。當涉及到數據庫插入,刪除等,線程安全問題?例如,什麼可以插入錯誤的記錄?如果我放棄「安全」,究竟會有什麼結果呢?PHP中的非線程安全對數據庫CRUD有影響嗎?

我正在使用Windows 2008 R2,IIS 7.5。

+0

是的,是的,潛在的'一切' – 2013-09-23 20:00:25

+0

爲什麼會得到一個downvote? – johnny

+0

看起來更像一個咆哮,而不是一個嚴重的問題 – 2013-09-23 21:01:28

回答

1

Dagon是正確的 - 線程安全對於任何操作都至關重要。

可以插入錯誤的記錄,例如?

有兩個問題在這裏:

1)是PHP線程安全的?

2)如果它不是線程安全的會發生什麼?

關於第一個問題,PHP的核心引擎是線程安全的並已數年。然而,正在運行的PHP安裝包含來自各種源的多個擴展 - 編寫PHP的人員無法保證其他人的代碼按預期行事。

關於第二個問題,是的,如果代碼是作爲輕量級進程運行的並且不是線程安全的,那麼你的數據可能會變得混亂 - 更可能它只會崩潰:並且因爲(AFAIK)與IIS ISAPI模塊一起工作(拋開線程PECL),這意味着它可能會取出整個IIS實例。

但是你需要回答的問題在你考慮這些之前是否對使用ISAPI線程而不是fastCGI和PHP有任何好處。就個人而言,由於性能,可靠性,更不用說我自己的理智,我會避免使用Micorosft平臺 - 但我有時會參與修復其他人的問題。然而,我沒有看到任何基準測試顯示ISAPI具有任何性能優勢,這可能解釋了爲什麼5.3.0版本(在Linux上沒有性能優勢,而是容量提高了5%左右)下降。

+0

因爲我已經做了更多的閱讀,所有事情都說非線程安全,所以我想我必須使用它。 – johnny