2009-12-15 82 views
0

我想知道是否有任何理由远离PHP中的对象序列化。我的用例是延迟处理。例如:一个邮件队列,邮件对象在接收到发送请求时将被序列化,存储在数据库中,并且被预定的工作者脚本反序列化。PHP中的对象序列化问题?

另一种方法是将对象所需的所有信息存储在数据库中,并在工作者脚本中构建对象。这样做的缺点是数据库会被绑定到对象的结构上,我不想这样做。

回答

0

在中间相遇:对于每个邮件对象,仅序列化配置阵列。数据库不需要随每次邮件类更改而迁移,并且我想每个数据库条目的活动时间不足以让您看到数据迁移问题。

3

序列化唯一真正的缺点是它的性能受到影响。表现通常随可变尺寸而变化;对象越大,需要的序列化时间就越多。

这就是说,很难说哪种方法在这里会更精通表现。您将会对序列化和反序列化对象产生性能上的冲击,但另一方面,您必须重新构建它们。您必须针对平均邮件对象对每种方法进行基准测试,以获取任何硬数据。顺便说一句,我不确定你的评论,即将对象数据存储在数据库中,将它与对象的结构联系起来......有很多方法可以将它抽象出来。这就是说,除非要求极高的性能,否则没有任何霸道的理由可以避免序列化,在这种情况下,无论如何,你最终可能会做各种各样的基准测试。这听起来像你的序列化方法是简单直接的...我会继续。

+0

同意,表现是非常主观的,并取决于使用情况和数据大小(例如,多长时间一次给定的邮件要求?什么是大到小的邮件分发) – r00fus 2009-12-15 17:53:58

+0

谢谢,这很好。是的,需要这种情况非常简单,不会出现任何性能问题。我更多地考虑创造一些在性能可能很重要的其他环境中可重用的东西。但是当我到达那里时我会解决这个问题。 – 2009-12-15 17:55:02