猿问

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

每当用户注册时,都会为每个用户创建一个文件夹(基于其清理/验证的用户名)。


我想知道哪个更好更快地检查用户是否存在


<?php

 if( file_exists($user_folder) ){

 echo 'Username already exist. Choose another one';

}

?>

或检查数据库以检查用户名是否存在?


宝慕林4294392
浏览 154回答 3
3回答

PIPIONE

使用数据库方法(最好且安全)而不是文件夹搜索。因此,如果您没有添加index用户表,请添加索引以实现最快搜索 -ALTER TABLE table_name ADD INDEX index_name (column);编辑 :用例 -如果您将用户名存储为文本,并将用户的个人资料图片存储在BLOB同一个表中,则必须SELECT username使用SELECT *.

梦里花落0921

我认为这取决于您拥有的数据和数据库设计。但是如果你在用户名上使用索引(唯一),数据库会更快。这一切都与搜索算法有关。假设您有1,000,000 个用户。当你检查文件夹时,它会一一检查,但如果你使用数据库检查,它会通过用户名直接检查数据。因为数据库搜索算法非常先进。

胡子哥哥

访问文件系统是最慢的事情。另一方面,数据库可能将其索引存储在 RAM 中,访问速度要快得多。所以我更喜欢数据库方法。但为了达到最大性能,您需要确保带有用户名的表字段是否设置为UNIQUE数据库将具有包含所有用户名的索引(如果您使用的是 MySQL、Postgres 等关系数据库)另外,关于功能的几句话file_exists()。根据文档,它会缓存结果以加快工作速度,但没有人知道下次会注册什么用户名,因此 DB 无论如何都更好。
随时随地看视频慕课网APP
我要回答