这是跟我昨天的问题 - 哪里有人问我为什么不在数据库中存储“缓存”的评论,(我测试了一个文件夹架构,数百万个文件夹分散在不同的子文件夹中, 1000个)开始让我思考正确的解决方案。缓存昂贵的计算 - 正确的方法?
1 million or more files in one folder, for include (cache)
基本上,以获得更多的比特到这里详细:我有一个昂贵的计算,与需要多个数据库查询。基本上,程序的每个请求都针对特定的用户。结果,对于每个用户,总是是完全一样的(直到用户进行重大更改)。所以基本上,我在想:为什么每次访问此用户页面时都要进行此操作 - 如果我可以做一次并存储它?
基本上,结果是一组不同的PHP对象,持有不同的数据/设置/等。所以我想创建一个.inc
文件,创建这些对象(具有预定义的值,这将导致从SELECT)。每次有人呼叫特定用户时,我只是快速地提出include
,问题就解决了。
现在我不太清楚解决方案了。这意味着,基本上每个用户都至少有一个.inc
(可能多个)文件,以包括。这意味着,如果我有用户表PK
的UNSIGNED MEDIUMINT
,我需要一个文件夹结构来支持至少8388607 *〜2个文件(最坏的情况)。
我想我在这里找错方向。我有什么可能?
- 选择数据和计算它/把它togheter在每一页上的呼叫 - 总是有相同的结果
- 同为2,但由此产生的对象,存储在一个文件中的代码片段 - 包括
- 与2.相同,但序列化结果对象,将它们保存在文件或数据库中,在每次页面调用时将它们反序列化
- ?
是否有其他解决方案/方法来解决这类问题?所有这些解决方案在我自己的耳朵里听起来都不太干净,但我正在努力寻找另一种方式来做到这一点。拿着800万个文件,或者一遍又一遍地计算同样的东西 - 不知何故,它们之间应该有一些东西。
有什么建议吗?
谢谢! - 请原谅我可怜的英语。
感谢输入,他们帮助我测试了几件事情 - 我发现存储在数据库中并不是正确的解决方案 - 直接查看已经gziped的文件只是更好地避免数据库调用 – Katai 2012-08-21 08:27:00