PHP:最佳配置存储?

时间:2010-04-12 15:01:32

标签: php configuration precompiling

我的应用程序通过许多键/值进行配置(例如,假设为30.000)

我想找到这些配置的最佳部署方法,因为我知道我想避免使用DEFINE来重新配置运行时。

我想到了

  • 通过php文件将它们预编译成数组
  • 将它们预编译为tmpfs sqlite数据库
  • 将它们预编译为memcached db

的选项是什么?
  • 这些配置的最佳随机访问时间(内存不是问题)?
  • 最佳结构化访问时间,如果我可以将这些配置分解为像(network,i18n,..)这样的系列

由于 杰罗姆

3 个答案:

答案 0 :(得分:2)

好吧,如果内存不是问题,只需将数组序列化为文件即可。绝对没有比这更快的解决方案。您没有SQLite的I / O和库开销,并且您没有memcached的网络开销。

但请记住,内存必须确实不是问题。您将一次将整个30,000个元素数组加载到内存中,而不是使用数据库,您可以根据需要加载它们。

要构建设置,您可以将每个设置放在自己的文件中。

但实际上,您应该使用数据库。这就是他们的目的。我真的怀疑为什么你需要担心30k设置..你可能想重新考虑你的应用程序设计。

答案 1 :(得分:0)

在数据库中怎么样?

使用这样的架构:

| key | value |

您可以拥有以下数据:

| currency | pound |
| timezone | GMT   |

这也意味着您可以这样查询:

SELECT * FROM options WHERE key = 'timezone'

甚至可以返回很多选项:

SELECT * FROM options WHERE key IN ('timezone','currency')

这可以在任何类型的数据库中,尤其是SQLite数据库。如果您使用的是PHP之类的语言,则可以使用ADOdb进行数据库抽象,这样您的应用程序就可以在不同的数据库类型之间移植,只需考虑一下您是否担心被绑定到一个数据库。

答案 2 :(得分:0)

如果你想要结构化,我会说使用parse_ini_file函数的ini文件。