PHP:序列化会花费多少性能?

时间:2012-03-20 07:38:04

标签: php performance serialization

我将使用序列化来存储一些大数组以保存到mySQL中,我想知道这种方法是否需要花费可观的性能?


[编辑]

我要存储的数组是用户的价目表。我创建了一个动态表单供用户输入价目表,每个价目表包含大约20到100行。每行有4个字段:product_name,单位,批发价格,零售价格。

我只想保存列表&重新显示它们,而不是通过SQL查询。

3 个答案:

答案 0 :(得分:5)

Serialize需要花费很长时间才能完成大事,而花费很短的时间来处理小事。你的东西有多大,你需要多快的东西?

您可以使用类似

的内容直接测量特定数组的serialize()的微秒成本
$startTime = microtime(true);
yourSerializeFunction(); // <-- you are timing this
$endTime = microtime(true);
var_dump( $endTime - $startTime )

如果您想要专业,可以lots of other profiling options

答案 1 :(得分:0)

阵列有多大?它应该是一个线性问题,因此与其他方法相比,性能损失可能不会那么大。如果您担心,可以随时对其进行基准测试。

话虽如此,请记住,与标准化数据相比,在关系数据库中保存序列化数组是非常糟糕的。您将很难使用其他语言的序列化数组,并且几乎不可能在WHERE子句中查询数据。我希望你考虑过这个。

答案 2 :(得分:0)

处理器开销同时包含serialize()和相应的unserialize(),尽管它是可以忽略的:除非你每次请求或者在大量数据上执行数千次,否则你甚至都不会注意到。

序列化数据较大,在数据库中搜索值不太实际,因此我建议您更好地规范化表格,这样就不需要这样做了