论坛首页 综合技术论坛

[探讨]千万级注册用户的网站构架 及 数据库如何设计?

浏览 8444 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-27  
对于超大型网站
注册用户:2000万年增500万
数据库记录:日增量100万条
数据库存储:日增量10G
Linux+apache+tomcat/jboss/resin+MySQL

大部分功能是进行交互操作,数据库访问较多

对于此类型网站及数据库该如何设计

CDN
Load Balancer(F5)
Apache做服务器集群
MySQL做集群

另外数据库表如何设计
例用户表是一张表还是多张表,相应地以活动为例,如果平均每个用户参与了10个活动,这种表的记录数为注册用户数*n条

希望能跟大家在这里互相探讨一下
类似的淘宝,QQ等大型网站的数据库如何设计?




   发表时间:2007-12-29  
这类问题最好直接请人设计了
0 请登录后投票
   发表时间:2008-01-03  
分而治之。把应用分组,每一组服务一定数量的用户,提供一部分数据。
0 请登录后投票
   发表时间:2008-01-31  
大量使用memcache等开源软件+好的数据库设计+集群部署

应该没问题。
0 请登录后投票
   发表时间:2008-07-21  
数据库散列,表散列
个个模块分散到不同的机器上。
0 请登录后投票
   发表时间:2008-08-14  
注册用户:2000万年增500万
......汗一下
0 请登录后投票
   发表时间:2008-08-19  
值得期待大牛们的方案。。。
    数据库是不是也要集群啊?好像类似什么数据仓库之类的东东?

0 请登录后投票
   发表时间:2008-08-26  
借用另一自贴:

1. If on low budget, use iptables automation to replace F5

2. Avoid using scripting language (Python, PHP, Rails, etc.). Use Java or C if you can afford good programmers; write your own framework if you really have good people that you can keep.

2. Segregate users into different sub-systems and sub-databases
- Unless use Oracle RAC (expensive and ACID challenge) like DB clustering, handling your own clusters is a design challenge

3. Read how Yahoo did it http://developer.yahoo.com/performance/rules.html to further optimize the Web site

4. Start think about how to purge old data from day one. (I warned you!)

5. Build in system manageability and monitor-ability from day one. (I warned you!)

6. Optimize database for optimized queries
- Export data from the transactional database to a denormalized read-only database that has indexes designed for queries
- Decentralize database based on different function - registration/signon vs. transaction

7. Cache data in the memory (before there was DB, all data was stored in memory)
- This only works for small amount of data, but could be the most dynamic parts
- Write a thread to periodically load data from DB to memory; have Web page use the in memory variables without running SQL;
- or have other code update in-memory variables, then write a thread to write data into DB to persist; need to deal with failover scenarios
- Not good for CGI or clustered systems

8. Use Web page cache products, with the cached copy periodically updated from the backend
- One variation of this is to pre-generate the static pages as discussed above

9. Mix use all of the above if you want the best of all; consider use different programming lauguages, different application servers and different databases for different parts of a page or a site

10. ?
0 请登录后投票
   发表时间:2008-12-07  
csevan 写道
值得期待大牛们的方案。。。
    数据库是不是也要集群啊?好像类似什么数据仓库之类的东东?


数据仓库不是数据库,根本就是完全不同的两个概念,汗一下。
0 请登录后投票
   发表时间:2008-12-23  
数据仓库也来。
1 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics