为了账号安全,请及时绑定邮箱和手机立即绑定

检查文件夹是否存在或检查数据库中的用户名,哪个更快更好?

检查文件夹是否存在或检查数据库中的用户名,哪个更快更好?

PHP
宝慕林4294392 2023-11-03 21:26:21
每当用户注册时,都会为每个用户创建一个文件夹(基于其清理/验证的用户名)。我想知道哪个更好更快地检查用户是否存在<?php if( file_exists($user_folder) ){ echo 'Username already exist. Choose another one';}?>或检查数据库以检查用户名是否存在?
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

使用数据库方法(最好且安全)而不是文件夹搜索。因此,如果您没有添加index用户,请添加索引以实现最快搜索 -
ALTER TABLE table_name ADD INDEX index_name (column);

编辑 :

用例 -

  • 如果您将用户名存储为文本,并将用户的个人资料图片存储在BLOB同一个表中,则必须SELECT username使用SELECT *.


查看完整回答
反对 回复 2023-11-03
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我认为这取决于您拥有的数据数据库设计。但是如果你在用户名上使用索引(唯一),数据库会更快。这一切都与搜索算法有关。

假设您有1,000,000 个用户。当你检查文件夹时,它会一一检查,但如果你使用数据库检查,它会通过用户名直接检查数据。因为数据库搜索算法非常先进。


查看完整回答
反对 回复 2023-11-03
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

访问文件系统是最慢的事情。另一方面,数据库可能将其索引存储在 RAM 中,访问速度要快得多。所以我更喜欢数据库方法。但为了达到最大性能,您需要确保带有用户名的表字段是否设置为UNIQUE数据库将具有包含所有用户名的索引(如果您使用的是 MySQL、Postgres 等关系数据库)

另外,关于功能的几句话file_exists()。根据文档,它会缓存结果以加快工作速度,但没有人知道下次会注册什么用户名,因此 DB 无论如何都更好。


查看完整回答
反对 回复 2023-11-03
  • 3 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信