【发布时间】:2019-10-14 17:38:50
【问题描述】:
我有一个跨 8 个表的相对复杂的查询,它返回多达 20 列的 10,000 条记录。然后将它们显示在 GridView 中
用户反复对 GridView 进行排序和过滤 - 导致页面重新加载 - 以便对数据进行排名。一列包含一个 Ajax “五星”评级函数,然后用户标记每一行:一星到五星
当然,这不是加载速度最快的页面,所以我想知道是否可以使用缓存来加速页面加载,但不知道考虑到过滤和标记是否可以这样做
在这个例子中可以使用缓存吗?第 19 列的数据始终相同(用户无法更改数据)但用户不断更改第 20 列的评分
我可以缓存这 19 列并过滤/排序吗?
我可以缓存这 19 列然后加入评分列吗?
非常感谢
【问题讨论】:
-
从技术上讲,可以缓存查询的查询结果并在 php.ini 中进行排序/过滤。但是当你让 mysql 处理过滤/排序而不缓存结果时,你可能会得到更差的性能。您可能需要考虑而不是缓存的事情:1)优化 sql 查询。 2)正确设置索引 3)反规范化 4)分页
-
谢谢。我过去使用过临时表和非规范化,效果很好。我会再走那条路。