Mysql 像Facebook那样的按需数据加载是否需要缓存?

Mysql 像Facebook那样的按需数据加载是否需要缓存?,mysql,optimization,ondemand,Mysql,Optimization,Ondemand,我开发了一个按需数据系统(外观上)与Facebook类似,当你到达页面底部时,有一个AJAX请求加载更多数据 “问题”是这个按需系统运行的一些mySQL查询相对较慢。因此,为了防止可伸缩性问题,我设计了(尚未实现)一个缓存系统(仅在这种按需情况下使用),用于存储查询结果: SELECT * FROM table WHERE .... 当用户(应用程序)请求 因此,当用户向下滚动,AJAX触发器询问mySQL下一个结果时: SELECT * FROM table WHERE .... LIMIT

我开发了一个按需数据系统(外观上)与Facebook类似,当你到达页面底部时,有一个AJAX请求加载更多数据

“问题”是这个按需系统运行的一些mySQL查询相对较慢。因此,为了防止可伸缩性问题,我设计了(尚未实现)一个缓存系统(仅在这种按需情况下使用),用于存储查询结果:

SELECT * FROM table WHERE ....
当用户(应用程序)请求

因此,当用户向下滚动,AJAX触发器询问mySQL下一个结果时:

SELECT * FROM table WHERE .... LIMIT 10,19
缓存系统将提供结果,而无需再查询mySQL

问题是:所有这些东西都是必要的吗?或者默认的mySQL缓存系统就足够了?换句话说,我知道如果在短时间内运行同一查询,mySQL缓存系统能够返回正确的结果,而无需再次搜索,但是,如果将不同的限制附加到同一查询中,mySQL缓存系统会非常“聪明”地避免搜索吗


当然,如果您知道一种更好的加速方法,请告诉我。

在更改性能之前,只需监视真实流量(例如,MySQL Jet profiler或类似工具,或者只是慢速日志)。您确定查询无法改进吗?也许这只是使用更好的索引的一个例子。@MosheL问题是(像往常一样)我有一个最后期限,如果最后没有必要,那就是时间不够。我问它是否有人有过这方面的经验。@eggyal嗯,正常的查询非常快,但是有一些交叉查询(涉及存储过程)非常慢。不是很常用,但我的测试表明,如果并发用户的数量足够多(50-70),那么速度会显著减慢MySQL查询缓存将一直工作,直到其他人修改表为止。如果你的表很少更新,它会工作的。否则——不是。SP可以标记为可缓存或无。
SELECT * FROM table WHERE .... LIMIT 10,19