2013-06-25 21 views
1

假设我们有一个PHP数组,其中包含约200个包含站点数据的密钥,全局共享给所有用户。使用apc_cache和存储到文件之间的区别?

该阵列从一个SQL数据库,其花费的时间太长构成。我们想要存储这个数组。

什么是存储阵列apc_store()或序列化,并保存到一个文件.php磁盘上,然后要么apc_fetch()file_get_contents()和反序列化检索之间的差异(主要是在速度)?

这将是更快?为什么不使用该文件?为什么要使用缓存?

编辑一个原因使用一个文件,而不是一个缓存(对我来说)是,我可以从CLI /壳/根与科雷访问文件。

回答

3

从最好到最差:

  • APC是内存和速度非常快;它会自动为您序列化和反序列化。
  • memcached是在内存中也一样,并且比APC慢一点。这不仅仅是因为它允许跨服务器使用相同的缓存。
  • unserialize(file_get_contents())涉及击中盘,但比PHP的解析速度。如果您没有APC,memcached或者等效的内存中缓存,这是一个好的选择。
  • var_export()创建一个php文件,然后include比反序列化一个字符串要慢,因为需要解析文件 - 除了打磁盘。好的一面在于,如果您需要,它可以轻松编辑阵列。
  • serialize()成一个PHP文件中保存的变量提供了最糟糕的每个:磁盘命中,PHP的解析和反序列化的数据。

(也可能有一些东西约在数据库中有正确的索引可以说在撷取200行建立一个数组应该不急不慢。)

相关问题