2010-09-17 49 views
1

我想添加一些静态信息与字符串键到我的所有页面。各个PHP页面使用由查询字符串过滤的某些信息。哪种方法可以更好地添加此信息?生成一个100K(或更大,如果以后需要更多信息)PHP文件与关联数组或添加其他数据库表与此信息和查询?哪个更好?额外的数据库调用或生成的PHP文件?

第一种解决方案是每次加载100K文件,即使我只使用当前页面上的部分信息。另一方面增加了额外的数据库调用来渲染每一页。

如果页面数量很多,那么成本更低?加载一个PHP文件或进行额外的数据库调用?

+0

其容易找出,做一个研究:)测量时间页面生成与数据库和文件...我会去与DB寿 – 2010-09-17 11:27:39

回答

2

除非显示它确实是一个瓶颈(包括php文件或查询数据库),否则应该选择最适合维护的选项。

我的猜测是这是第二种选择。将其存储在数据库中。

0

将它存储在数据库中是一个更好的计划。通过数据库,您可以提供更好的数据约束,更轻松地与其他数据交叉引用并建立强有力的关系。目前你可能需要也可能不需要,但最终它是一个更加灵活的解决方案。

什么是数据用于?我想知道,如果您需要的数据可以存储在会话变量/ cookie中,一旦它从数据库中提取出来,这将允许您在每个页面的呈现中不查询数据库。

0

如果您要利用PHP文件,那么使用APC或其他操作码缓存将缓解性能问题,因为每次文件更改时只会加载PHP文件。

但是,正如其他人所指出的,数据库是最好的地方来存储这些东西,因为它更容易维护(这应该是您的首要任务)。

确保易于维护和工作的应用程序,如果您需要性能提升,那么通常可以接受的做法是将此静态数据缓存到内存中的键/值存储区,如memcached。这将使您快速访问您的静态值(对于大多数请求)。

-2

我不会将此信息称为“静态”。
对我来说,这只是一个常规调用,以从数据库中获取圆顶信息,以及其他调用整个页面的调用。我错过了什么?

我同意丹尼斯的观点,所有的优化都应该基于真实的需求和性能分析。否则它的效果可能会相反。

如果你想利用一些缓存,考虑为整个页面实施Conditional GET。

相关问题