【问题标题】:Object serialization in PHP issues?PHP问题中的对象序列化?
【发布时间】:2010-12-26 21:44:14
【问题描述】:

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

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

【问题讨论】:

    标签: php database serialization object


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      序列化唯一真正的缺点是它会影响性能。性能通常随大小变化而变化;对象越大,序列化时间就越长。

      话虽如此,在这里很难说哪种方法更注重性能。序列化和反序列化对象的性能会受到影响,但另一方面,您必须重新构建它们。您必须根据您的平均邮件对象对每种方法进行基准测试,以获得任何硬数据。顺便说一句,我不确定您的评论是否将对象数据存储在数据库中将其与对象的结构联系起来......有很多方法可以将其抽象出来。

      话虽如此,除非您要求极高的性能,否则没有理由远离序列化,在这种情况下,您可能最终还是会自己进行各种基准测试。听起来您的序列化方法简单明了……我会继续这样做。

      【讨论】:

      • 同意,性能是高度主观的,并且取决于使用情况和数据大小(即,请求给定邮件的频率是多少?大邮件到小邮件的分布情况如何)
      • 谢谢,很高兴知道这一点。是的,需要这个的情况非常简单,不太可能遇到任何性能问题。我更多地考虑在性能可能很重要的其他环境中创建可重用的东西。但是当我到达那里时,我会解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多