论坛: 网站建设 标题: [原创]网站性能提升的一点想法.讨论. 复制本贴地址    
作者: TomyXu [tomyxu]    论坛用户   登录
    一个电子商城网站,有很多产品..每打开一个页面都要重新从数据库里读出产品信息.
    所以想了一个办法..不知道可行性有多少..来和大家讨论讨论
    就是把整个产品的数据库信息全部读如到内存中,存进一个或者几个 Application 对象中
    用户打开页面时显示的产品是由 Application 从内存中提供..而不用再去读数据库了..
    当然,需要更新或者添加的内容还是靠读写数据库实现..就是把产品信息存进去..
    因为我不懂系统编程,不知道这个办法的可行性有多大.或者有什么缺点..希望大家多多指教!
谢谢..
    简单的说就是把数据库内经常用到的数据存进 Application 对象中..

地主 发表时间: 07-12-22 16:37

回复: NetFog [q70213526]   版主   登录
如有10万个产品..每个产品占用内存为1kb..那么,只要网站运行就得占用100,000KB,即占用100M
这个数字也算小了吧..还有用户访问带来的压力...你算算....

小量数据时,自然是直接从内存取东西虽然快,但数据多时,内存耗尽,系统变慢..不如直接读数据库.

硬盘那么大,直接生成静态页,读硬盘不是更好???

将内存存到 Application 对象中,最好只在关键页面使用,如首页,如果首页需要程序及时更新,则可使用此方法,首页的访问量大,要读取的记录多,一个页面如果有几屏,数据库读取次数相当多.页面打开时间经常会达到一秒或者几秒甚至更多..此时,可考虑将信息存到App对象中,设置App存储内容更新间隔,当然这个更新间隔必须由另一个App记录.很多部分的信息,可以分叉开来更新..这样,首页访问速度就快了..

最好的办法还是静态生成吧..如果首页需要及时更新,同时以得考虑访问速度,就用上面的办法.设备好更新间隔,可以做到"准更新"

B1层 发表时间: 07-12-26 00:28

回复: listenwind [listenwind]   论坛用户   登录
数据连接池

B2层 发表时间: 07-12-27 15:45

回复: TomyXu [tomyxu]   论坛用户   登录
恩。。。
受益匪浅!!!谢谢

B3层 发表时间: 07-12-30 22:18

回复: TomyXu [tomyxu]   论坛用户   登录
那如果是流量很打,但是数据并不多的的网站呢?
这么做的话不就可以省去很多I/O了嘛。是不是呢?

B4层 发表时间: 08-01-03 14:01

回复: NetFog [q70213526]   版主   登录
存硬盘和存内存...用户访问感觉不出差别,访问速度影响因素还是/程序本身效率/文件大小/网络状况/服务器本身状况...

另外,省I/O的问题,也不必考虑...无论提供给用户的数据来源于硬盘还是内存,都会产生内存或者硬盘的读取...

在不需要及时更新的情况下,最好的办法是生成静态页...
在需要随时保持最新数据的情况下,使用动态页(为了搜索优化,亦可使用伪静态)

PS:注重效率,但不要过分,要全局把握,有时为了你的WEB系统的可扩展性放弃一部分的效率是正确的选择...

B5层 发表时间: 08-01-06 23:17

回复: TomyXu [tomyxu]   论坛用户   登录
恩...有道理..谢谢谢谢!
    看来要重新规划整个网站系统了.

B6层 发表时间: 08-01-08 12:26

回复: virgoshaka [virgoshaka]   论坛用户   登录
大的站点都有连接池的吧,连接数据库也不需要多少时间的

B7层 发表时间: 08-01-12 17:06

回复: NetFog [q70213526]   版主   登录
楼主事实上是在讲ASP的应用.ASP中无连续池..

B8层 发表时间: 08-01-17 15:52

论坛: 网站建设

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号