2009-12-15 65 views
0

我想知道是否有任何理由遠離PHP中的對象序列化。我的用例是延遲處理。例如:一個郵件隊列,郵件對象在接收到發送請求時將被序列化,存儲在數據庫中,並且被預定的工作者腳本反序列化。PHP中的對象序列化問題?

另一種方法是將對象所需的所有信息存儲在數據庫中,並在工作者腳本中構建對象。這樣做的缺點是數據庫會被綁定到對象的結構上,我不想這樣做。

回答

0

在中間相遇:對於每個郵件對象,僅序列化配置陣列。數據庫不需要隨每次郵件類更改而遷移,並且我想每個數據庫條目的活動時間不足以讓您看到數據遷移問題。

3

序列化唯一真正的缺點是它的性能受到影響。表現通常隨可變尺寸而變化;對象越大,需要的序列化時間就越多。

這就是說,很難說哪種方法在這裏會更精通表現。您將會對序列化和反序列化對象產生性能上的衝擊,但另一方面,您必須重新構建它們。您必須針對平均郵件對象對每種方法進行基準測試,以獲取任何硬數據。順便說一句,我不確定你的評論,即將對象數據存儲在數據庫中,將它與對象的結構聯繫起來......有很多方法可以將它抽象出來。這就是說,除非要求極高的性能,否則沒有任何霸道的理由可以避免序列化,在這種情況下,無論如何,你最終可能會做各種各樣的基準測試。這聽起來像你的序列化方法是簡單直接的...我會繼續。

+0

同意,表現是非常主觀的,並取決於使用情況和數據大小(例如,多長時間一次給定的郵件要求?什麼是大到小的郵件分發) – r00fus 2009-12-15 17:53:58

+0

謝謝,這很好。是的,需要這種情況非常簡單,不會出現任何性能問題。我更多地考慮創造一些在性能可能很重要的其他環境中可重用的東西。但是當我到達那裏時我會解決這個問題。 – 2009-12-15 17:55:02