日期:2014-05-17  浏览次数:20907 次

关于数据库查询性能的问题
想必开发过网页的也有这样的体验,对于有些页面,需要两类数据:
一类是配置类的数据(比如论坛的板块标题/聊天室的标题/页面的风格/每页显示多少之类的)
一类是内容类的数据(比如对于帖子列表来说是帖子标题/对于聊天室是聊天正文/对于阅读帖子就是帖子正文)
========================================================
那么,我想问的问题就是:
对于第二类数据,显然是每次都从数据库中取,但是对于第一类数据呢?
当然也可以每次都从数据库中取,但是我觉得太耗费资源并且数据基本上从来多大变化却为此耗费资源不划算
特别是当那类页面是极高频率访问的(近乎不停的刷新),内容类数据在变的
========================================================
对这个问题的尝试:
1.静态化,不可以。因为内容类数据在极度频繁变化,如果静态化根本就是虐待硬盘
2.缓存到Applaction变量中,不可以。因为虽然配置类数据几乎从不变化,但是总起来也有不小的数据量,几乎是虐待内存
3.创建Cache文件夹。但是配置类数据是不能让每个人都看到的,如果缓存成xml文件,则无法保证此文件不被访问到
========================================================
各位有什么高招呢?

------解决方案--------------------
看以文本的方式来保存是不是你要的
------解决方案--------------------
可以采用asp文件 参数形式 让别人访问了该文件也看不到内容
------解决方案--------------------
学习
------解决方案--------------------
1.静态化,不可以。因为内容类数据在极度频繁变化,如果静态化根本就是虐待硬盘
------------------------------------
同意
--------------------------------------
2.缓存到Applaction变量中,不可以。因为虽然配置类数据几乎从不变化,但是总起来也有不小的数据量,几乎是虐待内存
-------------------------------------
APPLICATION本来就是用来存储这种读写频率高的数据,内存也是造出来就是为了这种事,怎么可以说事虐带?至于存多少才不影响服务器性能,这个看需要而定
我一般都是XML+APPLICATION+JS三种缓存搭配,效果比较好
------------------------------------
3.创建Cache文件夹。但是配置类数据是不能让每个人都看到的,如果缓存成xml文件,则无法保证此文件不被访问到
----------------------------
个人推荐使用这个
谁说这个文件就一定能被访问到呢
文件路径完全可以在ASP内部保存读取,用户又怎么会知道呢?
甚至可以像保护数据库一样保护XML缓存,放到网站根目录的上级目录,这样用户就不能下载了
----------------------------
以文本方式Cache是一定不行的
----------------------------
谁说的,和我上面的说法一样
----------------------------
而生成ASP文件也不可行,除了担心用户在其中写一些内容与已有的内容构成语句来入侵(好像叫做注入)以外,也因为ASP文件本身就不符合XML标准,这样就没法通过msxml2.FreeThreadedDOMDocument读出来了
----------------------------
如果你缓存为ASP,怎么能还用XML格式?那缓存成ASP的意义在哪里?
缓存成ASP是为了防止用户查看其内容,所以都是直接缓存成变量写到ASP文件里,然后用另外的ASP链接此ASP,缓存成XML格式ASP还是能像网页一样被打开,毫无意义
另外,强烈建议再取了解一下什么叫注入,你要真做ASP的 缓存 文件,基本不存在这个问题

总的来说,解决方案其实很多,只是你自己把自己的路都堵死。路子很多,思路没有,这个很可怕