Php 在laravel中缓存每个数据库查询是否正常?

Php 在laravel中缓存每个数据库查询是否正常?,php,mysql,performance,caching,laravel,Php,Mysql,Performance,Caching,Laravel,我要做的是将每个数据库查询缓存到文件中。查询将使用包含用户用户名或用户ID的名称进行缓存。当然,当用户更改其信息时,缓存文件将替换为新文件。甚至像用户之间的友谊这样的交互也会被缓存 如果我有1.000.000个用户,我将拥有数百万(可能数十亿)个文件。这对性能是好是坏?这将填满您的文件系统,因此它取决于您拥有的空间大小。此外,如果您有大量活动用户,这将降低基于文件查找的性能 在任何情况下,我都建议使用Memcache或APC,就像laravel所说的那样。您是否测量过数据库的性能,发现它很慢?你

我要做的是将每个数据库查询缓存到文件中。查询将使用包含用户用户名或用户ID的名称进行缓存。当然,当用户更改其信息时,缓存文件将替换为新文件。甚至像用户之间的友谊这样的交互也会被缓存


如果我有1.000.000个用户,我将拥有数百万(可能数十亿)个文件。这对性能是好是坏?

这将填满您的文件系统,因此它取决于您拥有的空间大小。此外,如果您有大量活动用户,这将降低基于文件查找的性能


在任何情况下,我都建议使用Memcache或APC,就像laravel所说的那样。

您是否测量过数据库的性能,发现它很慢?你有一百万用户和十亿个文件吗?我正在开发一个社交网络脚本。我不会有10亿个文件,但那些将使用脚本的人可能有。我想我必须考虑每一个细节来提高性能。好吧,但是一百万用户对一台计算机来说并不重要。如果您正确设置了数据库,那么它应该比您需要的更快。在不知道系统将如何反应的情况下优化东西甚至可能会使它变得更慢。如果你真的想优化你的系统,那么你应该创建一百万个用户和文件,然后在加载时对系统进行评测(例如使用XDebug、KCacheGrind/WinCacheGrind等)。我会从不缓存东西开始——在一两年内不需要缓存时添加缓存可能会增加复杂性,但不会带来真正的好处。搜索“过早优化”-这本身就是一个大话题。谢谢你的有用评论。在我的系统中,当用户访问个人资料时,系统将检查他们是否是朋友。如果没有,它将检查是否已发送或收到请求。还有其他一些小事情。所有这些细节都需要额外的查询。我将开始构建一个包含所有这些内容的查询,但我需要一个非常复杂的查询。在我看来,缓存东西似乎是一种简单的方法。在这种情况下,我想问另一个问题。文件查找比mysql查询好还是坏?这完全取决于实际情况。数据库查询基本上是文件查找,因为数据最终存储在磁盘上(在大多数情况下)。当您有一个非常复杂的查询(例如,在返回正确的结果之前,数据库必须做大量的工作),将其存储在文件中并从中加载结果可能会更快。但我认为,将id=1的简单select缓存到一个文件中并没有什么好处。您应该真正测试这些情况,看看缓存到文件中是否真的有利于查询。