缓存如何用在需要验证手机号是否已存在?

比如在注册场景:

需要保证手机号唯一 ,那么就需要去数据库验证
为了防止数据库压力过大 有没有其他好的方法来保证手机号的唯一性?

阅读 1.5k
1 个回答

不要凭空就想象数据库压力过大, 脱离开QPS, 规模, 实现方式讲性能是耍流氓

如果你给手机号那个字段建立了索引, 并且字段类型设计合理, 而且查询也仅获取那个字段, 实际上整个查询是在索引上(也就是内存中)完成的, 和使用 redis 等 NOSQL 没啥本质区别

例如:

select `phone` from `users` where `phone` = ?
# 注意不是 select *

只要 phone 有索引, 整个查询会在索引上就完成, 不会回表, 性能很好