对于页面常用不变的数据如何缓存?缓存sql结果或是页面
最近做项目的时候遇到一个问题,对于一个经常被访问的页面,上面含有若干需要动态从数据库读出的数据(可能是不变的),如果每访问一次页面就对数据库进行一次交互,代价是不是太大了?我是想对这些常见的结果进行缓存,google了一下好像有缓存sql和页面缓存,请教一下那种方法好,对数据库的开销最小,我的数据库是mysql,还有大家有一些什么其他更好的建议也请一并给出,谢谢:)
------解决方案--------------------这样做你看可不可以,自己在页面做一个缓冲器,把经常用的数据存在这个容器(比如vector)里面,然后存在session里面或者application里面,然后以后需要的时候先直接查找这个容器,假如容器里面没有再去连数据库, 就类似于cache一样,
------解决方案--------------------使用缓存标签oscache或者apache common cache,使用起来很方便,只需要在你想缓存的程序段两端加上标签,并设置一些参数,如缓存时间,声明周期等,就可以了
------解决方案--------------------页面缓存是相当于用户的,这个作用不是很大,因为这样每个用户一进来还是要先从数据库中取出数据再缓存。
解决方法是把数据存放到服务器的内存,这样当有用户取数据就从内存里取,因为用户从数据库取数据首先取出后还是先放到内存的,你先把数据放到内存那么就不用到数据库取了。
还有一种更简单的方法就是把短时间内不变的数据库内容读出写成HTML文件,这样用户就直接访问HTML文件,然后程序自动定期或当数据库有新数据加入时更新这个HTML文件就行了