最近在写一个项目,需要在数据库里面储存数组,第一想到的就是序列化储存serialize,后来在写接口的时候用json意外的发现这东西储存长度比serialize更简洁,可读性更高,如果把json代替serialize储存到数据库是不是效率更高呢?(强迫症犯了,简直不能忍)
后来做了一系列的尝试,和网上资料的收集,大致过程就不写下来了,我就总结一下:
json
优势:
1、储存长度短,容量更小。
2、可读性高。
3、运行速度块。
4、对接其他语言方便。
缺点:
1、只能处理数组,无法处理对象数据。
2、中文方面只能支持UTF8。
3、早期php版本没有自带json方法。
serialize
优势:
1、可储存数组,对象等任何数据。
2、支持包括gbk等任何格式。
3、少量数据时,运行效率比json高。
缺点:
1、由于数据中储存了长度内容,因此在容量上较大。
2、储存稍为多一点的数据,速度要比json慢很多。
3、除了php,其他语言无法兼容。
大致我就知道这些了,也许还有一些我不知道的地方。
因此:储存utf8的数组优先选择储存json,其他的就储存serialize咯。