我正在为我的应用程序编写一个Web服务,并希望了解处理可能获得的大量请求的最佳方法.很多数据可能不会在一天内发生变化,但是我正在编写的特定脚本会产生3个MySQL查询,考虑到数据可能与上一次对脚本的请求相同,如果它不是同样的,没什么大不了的.
如果我将输出XML/JSON保存到文件然后在一天之内将其提供给请求者然后在第二天的第一个请求中覆盖它,那么性能会好得多吗?这样做的最佳方法是什么?
我知道Joomla和phpBB以及其他MySQL密集型应用程序都使用缓存,以便不会生成尽可能多的MySQL查询,所以这就是让我思考的问题.
编辑 - 忘了提到我在Windows/IIS 7.0上
在你需要之前不要搞砸缓存.Memcache经常是一个不成熟的优化,应该是你的最后一个,而不是第一个.添加此类缓存可能会导致复杂的一致性问题.
数据库本质上并不慢,当然也不比从平面文件加载一堆缓存数据慢.但是滥用它们可能会很慢.例如,如果您的每个页面查询之一写入MyISAM表,或者执行无索引查询,或者您的某个查询只是复杂而困难.通过首先修复架构来攻击这些情况.
你应该看看memchached:通过PHP的memcache或memcached访问它
Memcache模块为memcached,高效的缓存守护程序提供了方便的过程和面向对象的接口,该守护程序专门用于减少动态Web应用程序中的数据库负载.
它专为您的需求而设计,并被许多高性能Web应用程序使用.
Memcached的开发是为了提高LiveJournal.com的速度,LiveJournal.com这个网站每天已经为100万用户提供了2000万以上的动态页面浏览量,其中有一堆Web服务器和一堆数据库服务器.memcached的引入极大地降低了数据库负载.
注意
PHP中有两(2)个客户端库.关于这方面的更多讨论可以在serverfaul.com上找到:memcache-vs-memcached,这里是一个比较