我一直不太明白像腾讯这样有几亿用户的公司他们的数据库是怎么弄的?是按帐号的位数放在不同的数据库吗?还是把帐号数据备份了很多份根据访问的ip不同去访问不同数据库?验证的是webservice 吗?因为有很多的地方都需要帐号密码的验证啊。

解决方案 »

  1.   

    QQ Basic DB是存储QQ用户帐户信息和关系链信息的海量集群,是腾讯最核心最基础的后台服务之一,承载了百万级每秒的访问量、十亿级的账户数、百亿级关系链。
      

  2.   

    请看视频http://v.qq.com/play/r0010Yec0X4.html
      

  3.   

    mysql可以分布式吗?大侠们。
      

  4.   

    最简单的MySQL分布式是垂直拆分,按照业务来拆分到不同的数据库实例上去。像用户表这种,这么大的数据量就需要用到水平拆分了,比如按照会员id来拆分,在阿里巴巴,按照会员id hash到128个库上去,前端加一个分库判断逻辑的中间层就可以完成了。不同的会员访问不同的数据库实例,这样保证了扩展性,也提高了系统的并发响应能力。
      

  5.   

    大侠们说的分片我也知道的,我想知道现在有没有一种数据库不用你去分片,你把它装在很多机器上之后,它自动把多个表放在不同的机器而且性能很好的?要有这样完美数据库多好。自称很厉害的orlce ,db2,informix 等它们能做到我上面所说的那样吗?
      

  6.   

    用过hash函数把用户名放到不同的机器再hash一次放在不同的表,这个表是联合表,结构完全一样为了控制一个表的大小提高查询速度。在查询的时候先hash出在哪个机器,然后再hash出在哪张表,这样查询起来应该很快吧?大侠们踊跃发言哈。
      

  7.   

    你说的这种就是mysql的cluster结构了,对应的ndb引擎会自动进行分group和冗余,充分分布到各个机器上,并且保证了某个机器挂了也不会影响其他得机器。但是目前的测试结果来说,ndb cluster的性能还是比较低的。生产环境下使用mysql ndb cluster的,很少看到 
      

  8.   

    oracle 对应的是rac,pg对应的应该是greenplum。都有相应的缺陷。最新google推出了google spanner听说非常牛逼,不过资料比较少