3

我的应用程序通过很多键/值进行配置(例如 30.000)

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

我想过

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

我有什么选择

  • 这些配置的最佳随机访问时间(内存不是问题)?
  • 如果我可以将这些配置分解为(网络,i18n,..)之类的系列,则最好的结构化访问时间

谢谢杰罗姆

4

3 回答 3

2

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

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

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

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

于 2010-04-12T15:05:58.800 回答
0

在数据库中怎么样?

使用这样的架构:

| key | value |

你可以有这样的数据:

| currency | pound |
| timezone | GMT   |

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

SELECT * FROM options WHERE key = 'timezone'

甚至返回许多选项:

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

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

于 2010-04-12T15:04:18.043 回答
0

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

于 2010-04-12T15:08:33.767 回答