保存PHP中的Array,是用JSON, serialize还是var_export?

By | 2015/10/09

当我需要在数据库中存放一个array数据的时候,很明显,序列化成一个字符串是正常的做法,但是在PHP序列化有好几个方法,是json_encode,还是serialize,还是var_export呢?唯有试试咯~

准备好的array数据有20kB、 300kB、 4.5MB三组,重复序列、反序列化100次,还要看看最终形成的字符串的大小。另外var_export最终需要输出到文件然后include得到数据,理论上来说,并不适合存放在数据库,不过作为一种方法,也测试了一下。

CPU好像是2.53GHz,这个无所谓,因为主要看相对的结果。

最终结果如下

从上面的结果可以看出来,json的方法,总能获得尺寸最小的序列化字符串,而serialize的用时总是最小。好像负责搞笑的var_export的话,大家就忘了它吧……

事实上,当你在意空间而不在意时间的时候,请使用json的方法来做,否则请使用serialize,如果是配置文件的话,var_export不失为一种明智的选择。

最后告诉你,我实在是太在意空间了,以至于我不仅使用了json来保存array序列,甚至还使用了gzcompress来压缩存储,这样才可以在MySQL的Blob字段默认64k空间中完成存储,在硬件如此便宜的现在,这么拮据真的好可怜啊:P。


有2人评论 保存PHP中的Array,是用JSON, serialize还是var_export?

  1. tt

    还没看你这文章就想去分享。你到底给不给连接啊。
    第一是有用,
    第二是很赞,
    谢谢楼主

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注