|
作者: 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号