这是我昨天的问题的后续行动 - 有一条评论问我为什么不将“缓存”存储在数据库中,(我测试了一个文件夹架构,其中有数百万个文件夹被分成不同的子文件夹,每个文件夹最多 1000 个) ) 开始让我开始思考正确的解决方案。
基本上,在这里更详细一点:我有一个昂贵的计算,需要许多数据库查询。基本上,程序的每个请求都针对特定用户。对于每个用户,结果总是完全相同(直到用户做出重大更改)。所以基本上,我在想:为什么每次一个人访问这个用户页面时都做这个操作——如果我可以做一次,然后存储它?
基本上,结果是一组不同的 PHP 对象,包含不同的数据/设置/等。所以我正在考虑创建一个.inc
文件,创建这些对象(具有预定义的值,这将由 SELECT 产生)。每次有人呼叫该特定用户时,我都会快速include
解决问题。
现在我不太确定那个解决方案了。这意味着,基本上每个用户都有至少一个.inc
(可能有多个)要包含的文件。这意味着,如果我有一个UNSIGNED MEDIUMINT
用户PK
表,我需要一个文件夹结构来支持至少 8388607 * ~2 个文件(最坏情况)。
我想我在这里寻找错误的方向。我有什么可能?
- 选择数据并计算它/在每次页面调用时将其放在一起 - 始终具有相同的结果
- 与 2. 相同,但将生成的对象存储在文件中,作为代码片段 - 包括
- 与 2. 相同,但序列化生成的对象,将它们保存在文件或数据库中,在每次页面调用时反序列化它们
- ?
是否有其他解决方案/方法来解决此类问题?所有这些解决方案在我自己的耳朵里听起来都不太干净,但我正在努力寻找另一种方法来做到这一点。持有 800 万个文件,或者一遍又一遍地计算相同的东西——中间应该有一些东西,不知何故。
有什么建议么?
谢谢!- 原谅我糟糕的英语。