如何为PHP cms创建注册表


how to make a registry for a PHP cms?

可能重复:
钥匙有哪些好的、快速持久的存储选项->价值数据?

我想设计一个php-mysql-cms,并希望有一个注册表系统。我有许多变量对所有用户来说都是全局的,它们可能随时更改。我尝试在mysql中创建一个表,并在文本中创建一行,其中包含序列化模式下的所有注册表值。但在大型网站上,速度可能非常慢。若每个变量有一行,当注册表变重时,它可能会挂起。我的注册表最多可以有1000个变量,甚至更多。拥有一个快速且针对大型网站进行优化的注册系统的最佳方法是什么?

数据可以来自插件,每个插件可以有无限的注册表值。最大的问题是在每个页面呈现中都会更新一些变量,而我只为一个注册表值更新一个大文本行是一项愚蠢的工作。你的意见是什么?

您需要更新一个数据块,而只需要更新该数据块的一个子集。这与数据库最擅长的功能背道而驰。所以你在与你的存储层作斗争。即使您切换到使用Memcached的MySQL,您仍然会更新整个区块,而不是特定的值。

这总是开销无论您使用哪种类型的数据库。

如果你为插件提供了一个到"registry">的接口(而不是模式,也许你最好称之为选项存储(,该接口应该能够存储标准化而非序列化的值。如果将序列化的数据放入持久性层,那么在获取/设置数据时,就需要再次解析它。

如果您有一个包含500个值的数组,并且只需要更改其中的一个条目,那么您仍然可以往返500个值,并且需要更新整行。您还没有分享太多关于您的界面的信息,所以很难给出如何实现更轻量级的建议。