我想知道什么是减轻对数据库的昂贵查询的好方法。例如,使用记录,联接和计算负荷的查询。
所以我想我将每20分钟(或大约20分钟)执行一次这些昂贵的查询,并从存储这些昂贵查询结果的特殊表中为用户提供存储结果。这是一个好方法吗,还是您会选择一种平面文件缓存系统来存储数据库的结果?我读到正常的文件系统速度较慢。
如果有人能启发我这个问题,我将非常感激。
您需要缓存数据,这仅取决于位置,也将取决于数据集的大小。
正如Daryl所说,Memcache是一个很好的解决方案。取决于在后端访问此数据的方式以及您的框架,可以将其存储在基于应用程序的缓存中,该缓存每x分钟仅发出一次查询,并在此期间使用缓存结果。
如果要使用直接的sql路线,则可以采用数据仓库概念。
您将创建一个用于报告的扁平化模式,而不是基于事务的处理。您将减少联接的数量,并对数据进行非规范化,以使查询更快……但是它将是特定时期内的陈旧数据。
您可以设置服务/计划任务/数据库计划任务来发出查询,清除现有的展平表并用新结果重新填充它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句