JTBC:Access数据库的承受力及解决方法
Access最多能有多少条记录?,Accsee的文件大小最大能有多大?
有人说:
[quote]
理论上是没有限制的,但是,一般10万以上就不好用了。
access对大数据量不是支持很好,mdb文件最大的到1G就不行了,然后随便你怎么添加记录都没用,不会出错也不会有提示,但数据是加不进去了。具体的记录数则要看记录的大小了。我是十几个字段的记录,大约有50万条记录就变成这样了。
[/quote][separator]
这个问题在我以前做站之前根本没多考虑,因为一般的企业站,没多少数据的,mdb文件一般不会超过一百M,但是最近我被这个问题给困扰了。
一个客户的站,3W多条记录,大小300M左右,多次压缩后还有280多M,现在速度很慢。
究其原因,分析以下两点:
1. access对大数据量不是支持很好,建站前未考虑周全。没有全面了解客户需求。对于大数据量的需要,应该考虑SQL或MYSQL数据库。即不能使用ASP+ACCSEE的版本。
2. 当初设计模块及分类有问题。 整个站就一个文章模块,其它全部都是该模块下的分类,直接导致jtbc_article表数据量过大,基本上3W多打记录全在这个表里。导致查询速度变慢。
所以,建站的时候应该把同是文章性质但不同分类的文章,建在不同的模块中,也就是克隆多个article模块,既能有效地解决如上问题,也能更好地通过模块首页模板节点index来定制不同分类各自个性化的首页。
但是现在我依然被这个问题所纠结着,因为这么多数据再重新分开模块的话也很麻烦,而且也不是最终最有效的解决方案,因为这个数据还在每天增长,至少会有十万条数据,所以ACCESS数据库应该放弃。
更重要的是我想一并把IIS也抛弃掉,直接换成PHP+MYSQL,这样服务器部署的时候就不需要再装烦人的IIS,直接apache或Nginx都可,效率要比IIS高数倍。但现在的问题是PHP版中的功能没有ASP强,这个也不是问题,因为这个站也不需要什么太强的功能,关键是希望HTML生成可以使用,但我测试的PHP版本一直无法生成静态,这才是真正困扰我的原因。
希望能尽快解决。努力中...
1群的正在向我招手!
[color=#FF0000]---------------------- 分割线 ---- PS:2011.7.13日更新 -----------------------------------[/color]
这里说三点:
第一、本人已经跨进了1群的大门,感觉良好。不过还没顾上问问题。以上问题也没能在群里解决,因为群里的答案是不要生成静态,直接伪静态,但是伪静态并不能从根本上解决如上问题。
第二、以上问题暂时得以缓解。方法是我把配置了Nginx作为前台,然后代理IIS,并配置了Nginx缓存,这样一下子节约了200多M的服务器内存,而且访问速度得以很大的提升;由此可见 Nginx得确很好,很强大!尽管它在win主机下的性能大打折扣。
第三、希望下一步有时间的话,把程序做一下根本调整,换成PHP版,并各自建一个模块来存数据,或者就像APJE所说的那样给数据量太大的模块做分表处理。
[color=#FF0000]---------------------- 分割线 ---- PS:2011.8.29日更新 -----------------------------------[/color]
这两天速度又很慢了,不知道是服务器线路的速度问题,还是咋地,白天很慢,导致NGINX一直出现502和504错误。
所以从今天开始转换ASP版到PHP版(PHP+MYSQL)
正在进行时。。。
有人说:
[quote]
理论上是没有限制的,但是,一般10万以上就不好用了。
access对大数据量不是支持很好,mdb文件最大的到1G就不行了,然后随便你怎么添加记录都没用,不会出错也不会有提示,但数据是加不进去了。具体的记录数则要看记录的大小了。我是十几个字段的记录,大约有50万条记录就变成这样了。
[/quote][separator]
这个问题在我以前做站之前根本没多考虑,因为一般的企业站,没多少数据的,mdb文件一般不会超过一百M,但是最近我被这个问题给困扰了。
一个客户的站,3W多条记录,大小300M左右,多次压缩后还有280多M,现在速度很慢。
究其原因,分析以下两点:
1. access对大数据量不是支持很好,建站前未考虑周全。没有全面了解客户需求。对于大数据量的需要,应该考虑SQL或MYSQL数据库。即不能使用ASP+ACCSEE的版本。
2. 当初设计模块及分类有问题。 整个站就一个文章模块,其它全部都是该模块下的分类,直接导致jtbc_article表数据量过大,基本上3W多打记录全在这个表里。导致查询速度变慢。
所以,建站的时候应该把同是文章性质但不同分类的文章,建在不同的模块中,也就是克隆多个article模块,既能有效地解决如上问题,也能更好地通过模块首页模板节点index来定制不同分类各自个性化的首页。
但是现在我依然被这个问题所纠结着,因为这么多数据再重新分开模块的话也很麻烦,而且也不是最终最有效的解决方案,因为这个数据还在每天增长,至少会有十万条数据,所以ACCESS数据库应该放弃。
更重要的是我想一并把IIS也抛弃掉,直接换成PHP+MYSQL,这样服务器部署的时候就不需要再装烦人的IIS,直接apache或Nginx都可,效率要比IIS高数倍。但现在的问题是PHP版中的功能没有ASP强,这个也不是问题,因为这个站也不需要什么太强的功能,关键是希望HTML生成可以使用,但我测试的PHP版本一直无法生成静态,这才是真正困扰我的原因。
希望能尽快解决。努力中...
1群的正在向我招手!
[color=#FF0000]---------------------- 分割线 ---- PS:2011.7.13日更新 -----------------------------------[/color]
这里说三点:
第一、本人已经跨进了1群的大门,感觉良好。不过还没顾上问问题。以上问题也没能在群里解决,因为群里的答案是不要生成静态,直接伪静态,但是伪静态并不能从根本上解决如上问题。
第二、以上问题暂时得以缓解。方法是我把配置了Nginx作为前台,然后代理IIS,并配置了Nginx缓存,这样一下子节约了200多M的服务器内存,而且访问速度得以很大的提升;由此可见 Nginx得确很好,很强大!尽管它在win主机下的性能大打折扣。
第三、希望下一步有时间的话,把程序做一下根本调整,换成PHP版,并各自建一个模块来存数据,或者就像APJE所说的那样给数据量太大的模块做分表处理。
[color=#FF0000]---------------------- 分割线 ---- PS:2011.8.29日更新 -----------------------------------[/color]
这两天速度又很慢了,不知道是服务器线路的速度问题,还是咋地,白天很慢,导致NGINX一直出现502和504错误。
所以从今天开始转换ASP版到PHP版(PHP+MYSQL)
正在进行时。。。