首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如果一个新用户注册,怎么判断是否已被注册(注册用户几亿)

2013-03-14 
如果一个新用户注册,如何判断是否已被注册(注册用户几亿)如果一个新用户注册,如何判断是否已被注册(注册用

如果一个新用户注册,如何判断是否已被注册(注册用户几亿)
   如果一个新用户注册,如何判断是否已被注册(注册用户几亿)。
我的想法是,注册的用户用数据库存储,然后像字典一样的存放,可以建索引。然后新用户跟两个数据库(包含一个临时数据库)进行比对,由于数据库有序,那么可以较快地发现是否被注册。
   如果注册成功,那么将该用户放入一个新的临时存储的数据库,并排序。
   一段时间(比如一天,可以在凌晨1~3点低峰时间段),利用归并排序(其实就是分治思想)将两个数据库归并。
   不知道我的想法是否正确,在实际中如何判断,先谢谢各位了。
[解决办法]
还是得外存储, 内存不能全拿来干这个, 用sqlite嵌入比较好.
[解决办法]
几亿的注册用户的话,这个就不是问题了,因为你会碰到其他比这个难处理得多的问题了。
话说有几亿的用户的话,什么问题都不是问题了。
[解决办法]

引用:
还是得外存储, 内存不能全拿来干这个, 用sqlite嵌入比较好.


SQlite数据库,存几亿条记录,对它的性能表示忧虑啊。

[解决办法]
不懂算法,感觉是用哈希表,或者什么B树之类的。
[解决办法]
引用:
数据库放一个用户表,用户ID作为主键,数据库会把ID进行排序,或者HASH,查找几亿条记录,也是毛毛雨

数据库就是干这活的
一个应用,如果有:
百万级用户就很可观了
千万级用户就了不得了
亿万级用户基本就成仙了
[解决办法]
10亿(1,000,000,000)也才2的30次方
最坏的情况 2分查找 查30次

MD5码都可以用数据库来解
这个帐号名直接建立一个唯一索引应该是可以胜任的

lz可以实际试一下10亿条记录情况下数据库增删改查的效率你能不能接受
不能接受直接在数据库里面横向分表 也要比做数据库同步方便得多

[解决办法]
有时去执行一个错误的决定总比优柔寡断或者没有决定要好得多
[解决办法]
表的数据上亿? 为什么不分表呢。
[解决办法]
引用:
还是得外存储, 内存不能全拿来干这个, 用sqlite嵌入比较好.


貌似 sqlite轻量了点吧。在嵌入式上很方便,但是在真如上面说有几亿用户量,貌似不是很快。
[解决办法]
显然用 布隆过滤器 是更靠谱的方法..............
[解决办法]
假设这1亿用户在一台机器上,可以做几个hashmap,假设每个map一百万用户,也不过100个map,以用户id(比如邮箱)为key,查一遍也花不上很多时间。
如果用户分布在多个机器上,可以直接用memcached,以用户id为key,也很快。
虽然这两个方法都不算完善,但临时解决你的问题是可以的。
当然,前提是还有一个数据库,保存着几亿用户数据。程序启动时,把数据读到内存里,然后,定时更新或有变化时更新就可以了。来一个用户就查一次数据库,会拖垮库的,在内存里查就行了。

热点排行