关于网友提出的“检查用户名重复,当数据是海量,怎么保证速度”问题疑问,本网通过在网上对“检查用户名重复,当数据是海量,怎么保证速度”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:检查用户名重复,当数据是海量,怎么保证速度描述:
检查用户名重复
在数据量不大的时候最多就查一下数据库,看看是否存在
但这个数据量大了以后还是简单的查数据库就会非常慢了
像微博这样要检查用户名是否重复的,几乎都是做提交用户名后就能立即得到反馈,很想知道为什么他们检查重复就能做到很高的速度呢?
几大微博都号称有几亿用户的,检查一下重复的用户名还是非常快呀
解决方案1:
当数据量太大时,必然需要缓存,索引什么的都没法解决。
解决方案2:别单线程啦....
这点要向qq 学习 直接来数字 不用检查
解决方案4:布隆过滤器 + 数据库查询
必然是分布式的KEY-VALUE数据库,所有数据全部存内存
解决方案6:我的猜想是使用多个数据库服务器,按照用户名的命名方式来决定去访问哪个数据库
解决方案7:Redis + MySQL!Redis 用作缓存,先通过 Redis 获取,如果没有的话再从 MySQL 中取并创建 Redis 缓存。
解决方案8:把用户名按长度分别缓存到对应的map中,等用户提交时判断用户名长度到对应map中去检查是否存在不知道可靠不。当然写入数据再做一次检查很有必要的。
解决方案9:用户名字段加索引
解决方案10:把用户名缓存起来,,,