【发布时间】:2015-03-09 05:50:44
【问题描述】:
我想做的是将每个数据库查询缓存到文件中。查询将被缓存,名称包括用户的用户名或用户 ID。当然,当用户更改其信息时,缓存文件将被替换为新的。甚至用户之间的友谊之类的交互也会被缓存。
如果我有 1.000.000 个用户,我将拥有数百万(可能数十亿)的文件。这对性能是好是坏?
【问题讨论】:
-
您是否测量过数据库的性能并发现它很慢?您有 100 万用户和 10 亿个文件吗?
-
我正在开发一个社交网络脚本。我不会有十亿个文件,但使用脚本的人可能有。我认为我必须考虑到每一个细节以提高性能。
-
好的,但是一百万用户对于一台计算机来说并不是很多。如果您正确设置了数据库,那么它应该比您需要的要快。在不知道您的系统将如何反应的情况下优化内容甚至可能使其变慢。如果你真的想优化你的系统,那么你应该创建一百万个用户和文件,然后在负载下分析系统(例如使用 XDebug、KCacheGrind/WinCacheGrind 和ab)。
-
我会从不缓存东西开始——当你在一两年内不需要缓存时添加缓存会增加复杂性而没有真正的好处。搜索“过早优化”——这本身就是一个大话题。
-
感谢您的帮助。在我的系统中,当用户访问个人资料时,系统会检查他们是否是朋友。如果没有,它将检查请求是否已发送或已获取。还有其他一些小事。所有这些细节都需要额外的查询。我将开始构建一个包含所有这些内容的查询,但我需要一个非常复杂的查询。在我看来,缓存东西是一种简单的方法。
标签: php mysql performance caching laravel