我想知道什么是缓解数据库昂贵查询的好方法。例如,使用大量记录,关节和计算的查询。
所以我认为我会每20分钟(或左右)执行一次这些昂贵的查询,并从一个存储这些昂贵查询结果的特殊表中为用户提供存储结果。这是一个很好的方法,还是你会选择一个平面文件缓存系统来存储数据库的结果?我读到普通的文件系统比较慢。
如果有人能在这个问题上给我启发,我会非常感激。
答案 0 :(得分:1)
您需要缓存数据,它只是在何处,也将基于数据集的大小。
Daryl所说的Memcache是一个非常好的解决方案。根据在后端访问此数据和框架的内容,它可以存储在基于应用程序的缓存中,该缓存每隔x分钟只发出一次查询,同时使用缓存结果。
如果你想要直接的sql路线,你会采用数据仓库的概念 您将创建一个用于报告而不是基于事务的处理的展平模式。 您将减少连接数并将数据非规范化到一定程度,以便查询更快......但它将是特定时期的陈旧数据。
您可以设置服务/计划任务/数据库计划任务以发出查询,清除现有的展平表格,并使用新结果重新填充它。