php地区管理,用PHP管理大量数据的最快方法? (每个客户...

How can i store my very complex objects without serializing them, or how can I make my unserialization faster?

如果您需要非stdClass的PHP对象(数据成员旁边有类定义),则需要使用任何与PHP兼容的序列化.

独立于PHP语言,序列化需要付出一定的代价,因为它是数据转换和映射.如果您有大量数据需要从字符串(二进制)信息中转换和转换为字符串(二进制)信息,则需要处理和存储数据.

默认情况下是PHP的内置序列化,可用于序列化和反序列化. PHP提供了两种默认的序列化类型.其他扩展提供类似的功能.相关问题:

正如您所说的那样,您需要某种序列化,而反序列化是瓶颈,您可以考虑选择另一个序列化器,例如igbinary.

但是,将PHP存储在平面文件中也可以.参见var_export:

// storing

file_put_contents(

'name-of-data.php', '<?php return ' . var_export($data, true) . ';'

);

本示例以PHP可以读回文件的格式存储数据.对于以stdClass对象和数组形式的结构化数据很有用.读回来很简单:

// reading

$data = include('name-of-data.php');

如果将PHP代码放入数据库中,则不需要// storing

$string = 'return ' . var_export($data, true) . ';';

$db->store($key, $string);

// reading

$string = $db->read($key);

$data = eval($string);

使用var_export的好处是您可以使用PHP本身来解析数据.通常,它比序列化/反序列化要快,但是对于您的情况,无论如何您都需要进行度量.

我建议您尝试使用var_export在文件大小和速度方面如何表现.并带有鼻烟壶.比较一下.收集问题时,请保留问题的最新信息,以便在无法解决问题时提供其他建议.

想到的另一件事是使用Json格式.一些数据存储为此进行了优化,因此您可以直接查询存储.此外,map-reduce方法可与许多这些数据存储一起使用,以便您可以分散处理数据.这是您无法直接使用序列化/反序列化的东西,因为它总是一次处理一大块数据,您不能不同.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值