【发布时间】:2010-12-26 21:44:14
【问题描述】:
我想知道是否有任何理由远离 PHP 中的对象序列化。我的用例是延迟处理。例如:一个邮件队列,当接收到发送请求时,邮件对象将被序列化,存储在数据库中并由调度的工作脚本取消序列化。
另一种方法是将对象所需的所有信息存储在数据库中,并在工作脚本中构建对象。这样做的缺点是数据库会与对象的结构相关联,我不想这样做。
【问题讨论】:
标签: php database serialization object
我想知道是否有任何理由远离 PHP 中的对象序列化。我的用例是延迟处理。例如:一个邮件队列,当接收到发送请求时,邮件对象将被序列化,存储在数据库中并由调度的工作脚本取消序列化。
另一种方法是将对象所需的所有信息存储在数据库中,并在工作脚本中构建对象。这样做的缺点是数据库会与对象的结构相关联,我不想这样做。
【问题讨论】:
标签: php database serialization object
在中间相遇:对于每个邮件对象,只序列化 配置数组。每次更改邮件类都不需要迁移数据库,而且我想每个数据库条目的生存时间都不足以让您看到数据迁移问题。
【讨论】:
序列化唯一真正的缺点是它会影响性能。性能通常随大小变化而变化;对象越大,序列化时间就越长。
话虽如此,在这里很难说哪种方法更注重性能。序列化和反序列化对象的性能会受到影响,但另一方面,您必须重新构建它们。您必须根据您的平均邮件对象对每种方法进行基准测试,以获得任何硬数据。顺便说一句,我不确定您的评论是否将对象数据存储在数据库中将其与对象的结构联系起来......有很多方法可以将其抽象出来。
话虽如此,除非您要求极高的性能,否则没有理由远离序列化,在这种情况下,您可能最终还是会自己进行各种基准测试。听起来您的序列化方法简单明了……我会继续这样做。
【讨论】: