有没有比PHP函数serialize()更有效的方法将数组保存到SQL?

时间:2011-07-21 07:48:28

标签: php mysql performance

  

可能重复:
  An efficient way to save an Array and its Keys to a database

是否有可能返回二进制的serialize()等效项?

将数据保存为字符串在两个方面效率都很低:性能和内存方式效率低下。是否有一个函数可以从RAM返回纯数据,并因此有一个函数来读回它?

1 个答案:

答案 0 :(得分:2)

如果您要做的只是获得序列化字符串的更紧凑的表示形式,例如,使用比普通serialize()更少空间的字符串,您可以使用gzdeflate()压缩明文 - 文字输出:

$data = gzdeflate(serialize($some_array));
// Store in database...

// To restore the array: Get $data from the database, then:
$array = unserialize(gzinflate($data));

您可以使用gzcompress() / gzdeflate()代替gzinflate() / gzuncompress(),但这些字符串会产生略大的字符串,因为它们包含其他元数据,例如校验和。< / p>