查看: 1556|回复: 18
|
10万用户的资料库管理
[复制链接]
|
|
不知道这里有没有人做过10万用户资料库的管理和设计?
1) 一个DATABASE (POSTGRESQL, MYSQL... )可以SUPPORT 多少同时连线的用户SESSION?
2) 一个WEB SERVER (APACHE)可以同时SUPPORT 多少个USER SESSION?
3) 如何设置 CLUSTER DATABASE SERVER?
做过以上的有经验者,可否分享?
谢谢。 |
|
|
|
|
|
|
|
发表于 1-6-2005 09:10 AM
|
显示全部楼层
无法清楚的告诉你答案. 我没做过拥有十万用户的资料库.
根据我之前出席 BEA WebLogic 的销售会上, 新加坡码头用的是 WebLogic + Oracle, 一分钟要处理过万的交易... 是我目前看过最庞大的资料库交易量.
要说的是, 几十万资料条对一般资料库来说是没问题的, 问题在于资料库一次能够处理多少个交易, 才是大问题. Oracle 和 MSSQL 都能处理的很好, Oracle 说在他之后的就是 MSSQL, 然后是 DB2 (在其中一本艾利森专里提到)
[ Last edited by goatstudio on 1-6-2005 at 09:12 AM ] |
|
|
|
|
|
|
|
发表于 1-6-2005 02:47 PM
|
显示全部楼层
能不能把所有的database排名都列出来呢?
好像第一的是。
Oracle then
MSSQL
。。。。。。
last is MSAceess (好像是)
小弟想知道其他的。 |
|
|
|
|
|
|
|
发表于 1-6-2005 03:37 PM
|
显示全部楼层
DB2
Dbase
FrontBase
Infomix
Ingress
InterBase
mSQL
Ovrimos SQL
Postgre SQL
Sybase
[ Last edited by jasonmun on 2-6-2005 at 09:14 AM ] |
|
|
|
|
|
|
|
发表于 1-6-2005 04:41 PM
|
显示全部楼层
goatstudio 于 1-6-2005 09:10 AM 说 :
无法清楚的告诉你答案. 我没做过拥有十万用户的资料库.
根据我之前出席 BEA WebLogic 的销售会上, 新加坡码头用的是 WebLogic + Oracle, 一分钟要处理过万的交易... 是我目前看过最庞大的资料库交易量.
要说的 ...
不知道他们怎么计算, 因为在EJB
user.getUserId(xxx); //一个交易 (Transaction)
user.getUserName(xxx); //一个交易
user.getUserTelNo(xxx); //一个交易
user.getUserFaxNo(xxx); //一个交易
user.setUserId(yyy); //一个交易
user.setUserName(yyy); //一个交易
user.setUserTelNo(yyy); //一个交易
user.setUserFaxNo(yyy); //一个交易
.....
enum = userHome.FindAll();
while xxxx //Loop for 100 records
{
remote = (UserRemote) ProtableRemoteXXXXXXXXXX(enum.next) ....;
remote.getUserID;
remote.getUserName;
remote.getXXXX (assume 100 columns)
...
}
100 records * 100 columns = 10,000 交易 (Transaction)
如果没有利用 Cache 的特点, 我认为不能快过 Normal Java Coding.
[ Last edited by hkloke2000 on 1-6-2005 at 05:54 PM ] |
|
|
|
|
|
|
|
发表于 1-6-2005 04:49 PM
|
显示全部楼层
hkloke2000 于 1-6-2005 04:41 PM 说 :
不知道他们怎么计算, 因为在EJB
user.getUserId(xxx); //一个交易
user.getUserName(xxx); //一个交易
user.getUserTelNo(xxx); //一个交易
user.getUserFaxNo(xxx); //一个交易
user.setUserId(yy ...
你还没看完整个 source code 吧. |
|
|
|
|
|
|
|
发表于 1-6-2005 05:53 PM
|
显示全部楼层
jasonmun 于 1-6-2005 03:37 PM 说 :
DB2
Dbase
FrontBase
Infomix
Ingress
mSQL
Ovrimos SQL
Postgre SQL
Sybase
[ Last edited by jasonmun on 1-6-2005 at 03:43 PM ]
汗。。。。
没有一个我认识。
为什么没有看到MYSQL的
[ Last edited by 红发 on 1-6-2005 at 05:55 PM ] |
|
|
|
|
|
|
|
发表于 1-6-2005 06:17 PM
|
显示全部楼层
exiang 于 31-5-2005 06:05 PM 说 :
不知道这里有没有人做过10万用户资料库的管理和设计?
1) 一个DATABASE (POSTGRESQL, MYSQL... )可以SUPPORT 多少同时连线的用户SESSION?
2) 一个WEB SERVER (APACHE)可以同时SUPPORT 多少个USER SESSION?
...
Caching
e.g.
Assuming to load a page, required 100 Data Access Operation. Assuming 100 click per second.
For 5 minutes : 100 * 100 * 5 * 60 = 3,000,0000 Data Access Operation.
If you have Page Caching - Assumming Caching Interval is 5 minutes, so
For every 5 minutes : Only 100 Data Access Operation.
Notes : There and different type of caching like database record caching, html page caching.
[ Last edited by hkloke2000 on 1-6-2005 at 06:19 PM ] |
|
|
|
|
|
|
|
楼主 |
发表于 1-6-2005 07:35 PM
|
显示全部楼层
goatstudio 于 1-6-2005 09:10 AM 说 :
无法清楚的告诉你答案. 我没做过拥有十万用户的资料库.
根据我之前出席 BEA WebLogic 的销售会上, 新加坡码头用的是 WebLogic + Oracle, 一分钟要处理过万的交易... 是我目前看过最庞大的资料库交易量.
要说的 ...
对,我就是问SESSION 的能耐。 |
|
|
|
|
|
|
|
发表于 2-6-2005 09:09 AM
|
显示全部楼层
hkloke2000 于 1-6-2005 04:41 PM 说 :
不知道他们怎么计算, 因为在EJB
user.getUserId(xxx); //一个交易 (Transaction)
user.getUserName(xxx); //一个交易
user.getUserTelNo(xxx); //一个交易
user.getUserFaxNo(xxx); //一个交易
use ...
难说... 我也不知道, 没看过他们的 coding.
象 Bea WebLogic, Webspheare 这类的, 他们的 busness object 是经过优化的, 就连 java compiler 也是经过优化的, 相信对他们来说问题不大.
exiang 于 1-6-2005 07:35 PM 说 :
对,我就是问SESSION 的能耐。
我个人认为别去担心资料库用户的问题, 应该看看资料库能处理多庞大的交易.
通常资料库的用户只有区区几个, 既是 DBA 还有普通用户. 而软件用户几乎都是通过一个普通用户的户口来连接. 担心的话, 有保障的要数 Oracle, MSSQL, DB2 了... 其它的 MySQL 做大量简单的交易其实也算不错. |
|
|
|
|
|
|
|
楼主 |
发表于 2-6-2005 10:16 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 2-6-2005 12:41 PM
|
显示全部楼层
看样子。
我要去学
Oracle, MSSQL和DB2了 |
|
|
|
|
|
|
|
发表于 3-6-2005 01:39 PM
|
显示全部楼层
目前没有这机会接触达10万用户的DATABASE,现在用MS SQL 和 MY SQL比较多 |
|
|
|
|
|
|
|
楼主 |
发表于 3-6-2005 04:05 PM
|
显示全部楼层
hkloke2000 于 1-6-2005 06:17 PM 说 :
Caching
e.g.
Assuming to load a page, required 100 Data Access Operation. Assuming 100 click per second.
For 5 minutes : 100 * 100 * 5 * 60 = 3,000,0000 Data Access Operation.
If ...
yeap, 很多系统都有内建CACHE SYSTEM, MYSQL 也有。
但我做PHP WEB APP 时,一些不常UPDATE的 READ ONLY 资料也可以CACHE 起来,当用户UPDATE时再CACHE 过。
PHP 本身也有CACHING SYSTEM, 如PEAR PROVIDED 的。
我现在想的是那些好像KING OF CHAOS, UTOPIA 等的游戏是如何应付庞大的REQUEST 和 DATABASE QUERY。DATABASE 应该如何OPTIMIZE? |
|
|
|
|
|
|
|
发表于 3-6-2005 09:15 PM
|
显示全部楼层
相信你没人能准确地告诉你答案。
你需要测试它瓶颈是在那里, 然后分析和决定其次必须做什么
e.g :
1) 增加 CPU, RAM
2) 数据库优化(Oracle 支持 Partition Table & Grid Computing)
3) 增加 Server + Load Balancing (Have to identify the bottleneck is WebServer or Database Server and then decide where to put the Load Balancer)
4) 优化 Coding, SQL & Table Indexs (you can do your own caching here and it can be more effective/flexible than what the web server or database server provided. Because you know the best what information you want to cahce)
5) 选择更快的 Web Server + Operating System
[ Last edited by hkloke2000 on 3-6-2005 at 09:24 PM ] |
|
|
|
|
|
|
|
发表于 4-6-2005 11:18 AM
|
显示全部楼层
红发 于 2-6-2005 12:41 PM 说 :
看样子。
我要去学
Oracle, MSSQL和DB2了
有tutorial吗? 华文的, eng的看到头晕 |
|
|
|
|
|
|
|
楼主 |
发表于 5-6-2005 02:09 AM
|
显示全部楼层
hkloke2000, 我也认为没有一个肯定的方案,虽然我有一点点懒惰
谢谢你的提议。 |
|
|
|
|
|
|
|
发表于 6-6-2005 08:44 AM
|
显示全部楼层
我是用一些比较普通的方法来减少LOADING DATA的时间如
尽量不要用SELECT * FROM XXXXX,如果你的FIELDS很少那就没问题,如果你的FIELDS有40个以上,加上百万以上的RECORDS,就惨了
各位还有什么方法吗?介绍介绍一下 |
|
|
|
|
|
|
|
发表于 6-6-2005 09:19 AM
|
显示全部楼层
可以考虑用 view/stored procedured 来增加效率. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|