哪个更好?额外的数据库调用或生成的PHP文件?

时间:2010-09-17 11:22:36

标签: php database performance

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

第一个解决方案涉及每次加载100K文件,即使我只使用当前页面上的一些信息。另一方面,第二个为每个页面的渲染添加了额外的数据库调用。

如果有大量页面,哪个成本较低?加载PHP文件或进行额外的数据库调用?

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

用于什么数据?我想知道,一旦从数据库中提取数据,您所需的数据是否可以存储在会话变量/ cookie中,这样您就无法在每个页面的呈现中查询数据库。

答案 2 :(得分:0)

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

然而,正如其他人所指出的那样,数据库是存储这些内容的最佳位置,因为它更容易维护(这应该是您开始时的首选)。

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

答案 3 :(得分:-2)

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

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

如果您想使用一些缓存,请考虑为整个页面实现条件GET。

相关问题