在研究之中.可以互相交流下
====================================
看不到你的追问内容,请 撕兴我,谢谢
同时在线人数最高时超过一亿人。不要告诉我是一对好友关系一条记录,那样岂不是几十亿条记录。我想肯定不是这样的。
------解决方案--------------------------------------------------------
userid, frientid,groupid
------解决方案--------------------------------------------------------
1、使用冗余,每个人的好友信息都在数据库中有存储,就是你说的记录一对一关系
2、数据缓存到内存,数据访问很快
3、状态信息修改异步,比如一个人登陆了,他的好友不是马上就知道,中间间隔几秒也没有关系
4、数据可能不放在关系数据库中,可能使用nosql数据库,比如mongodb,bigtable,cassandra等
5、facebook,twitter就是用类似的思想
严格按照范式理论就OK。
腾讯QQ使用的是MySQL数据库。MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)