-
答案 1:
有一个千万级别用户应用的架构设计歌谣,供参考:mysqlops.com/2011... 千万级别用户的后台数据库设计: 1.一定要区分业务类型,描述为千万级别用户的应用可能:电子商务、SNS平台、SNS游戏、IM及时通信软件等; 2.每天的日活跃量大概多少用户,若是网站还需要加入其他参数:PV,UV等参数辅助决策; 3.不同的业务其对数据操纵不一样,要大致明白自己的应用:读写比如关系,也即:SELECT:UPDATE:DELETE:UPDATE=?; 4.必须考虑一些功能借助Cache等技术进行一些特殊处理或折中,使投入产出比率协调; 5.若是使用MySQL作为后台数据库提供服务,建议尽量使SQL简洁,不是说不用JOIN,而是要考虑MySQL对JOIN实现的算法:Nested loop join优缺点; 6.数据库结构设计 6.1 数据库的设计开始之前,必须优先进行业务的数据流梳理(注释:必须尽量考虑应用所有可能的功能模块),以及对业务优先进行优化和规划,然后根据数据流和功能 考虑数据库的结构设计和优化; 6.2 千万级别用户量,若是非游戏行业的产品(SNS游戏除外),建议考虑用户数据拆分架构设计,以及考虑后续未来1-2年的承受量,若是SNS平台必须考虑拆分,除非考虑上SSD+Fusion-io、存储等更高端的设备,用钱换时间的方式支持一段时间再说; 6.3 数据拆分的核心与难处:同一个用户的数据尽量放一起(拆分规则要尽量简单可执行),拆分之后用户关系的数据如何保存的抉择有多种(存2份或存1份放一个地方),难处数据的分页,统计合并等; 6.4 必须有考虑一些冗余的方式解决SQL性能的问题,但是又不过多引入冗余IO,冗余字段尽量要是整型字段; 6.5 数据库设计过程中,对于索引组织结构要偏向 应用外部用户级别的操作 性能优先,部分内部的操作尽量隔离的做法,例如:搜索引擎Build操作、内部编辑团队审核等操作 6.6 数据库的设计必须考虑使用什么机器类型,内存多少、CPU、硬盘(这个是关键:多少块盘、转速、容量,以及做RAID几),RAID卡内存也需要考虑进去,必须结合数据量进行一个预算规划.........不一定超准确,但是要八九不离十. 先写这么多了,很多东西需要结合实际业务去再细化...
如何构建千万级用户的后台数据库?
2012-01-19 17:32:55 来源: 点击:
相关热词搜索:
上一篇:一个新生的互联网服务应该怎样规划和设计自身的 API 架构?
下一篇:单看性能参数是否能判断此手机在日韩使用?