这两函数在PHP中用于将数据对象序列化成文本,或将文本反序列化成数据对象。
经常用于PHP的cache处理中,可以将一个数据库的查询结果,缓存到本地的硬盘中。
今天因为种种原因,需要将一个大数据集的数组(10W条数据),序列化存储,但是由于数据集比较大序列化和反序列化的速度异常的慢,大约需要10秒才能执行完毕。
分析数据发现,序列化的数据中有一些信息是冗余的,我10W条数据,其实对我有用的就是有些统计信息
比如说{s:2:"pv";i:0;s:2:"uv";i:0;s:8:"topCount";i:0;s:10:"eliteCount";i:0;s:12:"articleCount";i:0;s:10:"replyCount";i:0;s:14:"unionUserCount";i:0;s:6:"online";i:0;s:2:"id";s:2:"79";s:8:"pathInfo";a:1:{s:2:"id";s:2:"79";}},但实际存储中发现,之前为了减少读取文件的次数,我把很多无用的信息冗余的也存储到这里了,比如说一个用户的基本信息,姓名,年龄,还有版面的基本信息等(我相信很多人也经常这样做,用空间来换取时间),但这样构成的数组就太庞大了。
后来仔细研究了下,发现在这里用空间换时间是不可取的,相反速度会慢,因为我的一页只有30条数据,那些信息完全可以时时查找的,与其将其冗余存储到这10W条数据里,还不如等分完页后我在获取那些信息,组合起来,还节省了很多内存,经过这一步的改造
程序的响应时间,提高了5s。
序列化的文件大小 由原先的1.95M缩减到了326K
哈哈 看来数据分页所带来的好处还是蛮多的啊。
转自哥们延年的QQ空间!
经常用于PHP的cache处理中,可以将一个数据库的查询结果,缓存到本地的硬盘中。
今天因为种种原因,需要将一个大数据集的数组(10W条数据),序列化存储,但是由于数据集比较大序列化和反序列化的速度异常的慢,大约需要10秒才能执行完毕。
分析数据发现,序列化的数据中有一些信息是冗余的,我10W条数据,其实对我有用的就是有些统计信息
比如说{s:2:"pv";i:0;s:2:"uv";i:0;s:8:"topCount";i:0;s:10:"eliteCount";i:0;s:12:"articleCount";i:0;s:10:"replyCount";i:0;s:14:"unionUserCount";i:0;s:6:"online";i:0;s:2:"id";s:2:"79";s:8:"pathInfo";a:1:{s:2:"id";s:2:"79";}},但实际存储中发现,之前为了减少读取文件的次数,我把很多无用的信息冗余的也存储到这里了,比如说一个用户的基本信息,姓名,年龄,还有版面的基本信息等(我相信很多人也经常这样做,用空间来换取时间),但这样构成的数组就太庞大了。
后来仔细研究了下,发现在这里用空间换时间是不可取的,相反速度会慢,因为我的一页只有30条数据,那些信息完全可以时时查找的,与其将其冗余存储到这10W条数据里,还不如等分完页后我在获取那些信息,组合起来,还节省了很多内存,经过这一步的改造
程序的响应时间,提高了5s。
序列化的文件大小 由原先的1.95M缩减到了326K
哈哈 看来数据分页所带来的好处还是蛮多的啊。
转自哥们延年的QQ空间!
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2224/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表