ホームページ > バックエンド開発 > PHPチュートリアル > 有没有一种简单的查找数据唯一性的解决方案?

有没有一种简单的查找数据唯一性的解决方案?

WBOY
リリース: 2016-06-06 20:19:22
オリジナル
1207 人が閲覧しました

比如注册网站显示“该用户名已被使用”,“该邮箱已被使用”,都是通过Ajax在后台去查找该用户名或邮箱在mysql中是否存在,有没有一种简单的方法,不用mysql,能够迅速在大数据中查找一个数据如用户名或邮箱是否已经存在了?

回复内容:

比如注册网站显示“该用户名已被使用”,“该邮箱已被使用”,都是通过Ajax在后台去查找该用户名或邮箱在mysql中是否存在,有没有一种简单的方法,不用mysql,能够迅速在大数据中查找一个数据如用户名或邮箱是否已经存在了?

好久不见。不和后台通讯当然是不行的,查询结果又不可能凭空产生出来。不过这个需求确实未必需要全功能的sql数据库。

你可以在系统本身采用mysql不变的情况下,再加一套redis缓存系统内所有的用户名(或其他需要唯一的条目)以备快速查询。

redis的底层是哈希表,哈希表的效率可以说是不能超越的。而数据量巨大时,redis更可以直接支持分布式部署,分库和平摊完全无需用户编程,非常便利。

当然具体方案全看你的应用实例而定。不过除了“数据太少无需缓存”和“数据够多直接上redis”之外,我很难想到其他更优的方案。

如果沒索引, 最坏情况是O(n)過一遍, 這在生產環境是不能接受的

所以總歸要有索引, 這個索引是用關係數據庫還是另外的東西可以商量

如果只是要快速判断用户名是否存在,用redis是最简单的方法

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート