每当用户注册时,都会为每个用户创建一个文件夹(基于其清理/验证的用户名)。我想知道哪个更好更快地检查用户是否存在<?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 *
.
梦里花落0921
TA贡献1772条经验 获得超6个赞
我认为这取决于您拥有的数据和数据库设计。但是如果你在用户名上使用索引(唯一),数据库会更快。这一切都与搜索算法有关。
假设您有1,000,000 个用户。当你检查文件夹时,它会一一检查,但如果你使用数据库检查,它会通过用户名直接检查数据。因为数据库搜索算法非常先进。
胡子哥哥
TA贡献1825条经验 获得超6个赞
访问文件系统是最慢的事情。另一方面,数据库可能将其索引存储在 RAM 中,访问速度要快得多。所以我更喜欢数据库方法。但为了达到最大性能,您需要确保带有用户名的表字段是否设置为UNIQUE
数据库将具有包含所有用户名的索引(如果您使用的是 MySQL、Postgres 等关系数据库)
另外,关于功能的几句话file_exists()
。根据文档,它会缓存结果以加快工作速度,但没有人知道下次会注册什么用户名,因此 DB 无论如何都更好。
- 3 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消