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

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

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

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

最终结果如下

原始大小

方法 : 用时 | 最终大小

----------------------------------

20KB: |

json_encode: 0.022s | 20132

serialize: 0.015s | 31235

var_export: 0.071s | 35673

300KB: |

json_encode: 0.215s | 317258

serialize: 0.156s | 450305

var_export: 0.513s | 580151

4.5MB: |

json_encode: 4.364s | 5079230

serialize: 3.343s | 7183747

var_export: 9.222s | 11649422

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

原始大小

方法:用时|最终大小

----------------------------------

20KB:|

json_encode:0.022s|20132

serialize:0.015s|31235

var_export:0.071s|35673

300KB:|

json_encode:0.215s|317258

serialize:0.156s|450305

var_export:0.513s|580151

4.5MB:|

json_encode:4.364s|5079230

serialize:3.343s|7183747

var_export:9.222s|11649422

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值