我有一个可以包含 1000 个用户的登录 ID 数据库。现在要检查用户是否存在,我正在做的是将我数据库的所有 LoginID 值存储到数组列表中,而不是使用检查它是否存在
代码:
while(result.next())
{
String str = result.getString(1);
LoginID_arraylist.add(str);
}
if(LoginID_arrayList.contains(loginid)
{
// if exist --> than another query using loginid
}
这是实现我想要的结果的好方法吗?我的替代方案是什么......如果我的体型进一步增大,它会影响我的表现吗?? 我正在使用 MySql 和 JDBC。
最佳答案
不要使用ArrayList
进行包含
搜索。这具有 O(n) 性能。相反,使用具有 O(1) 查找的 HashSet
。
但是,更好的做法是一开始就不要查询所有行。只需提出您的查询:
SELECT COUNT(*) FROM users WHERE login_id = ?
然后看结果是否为0
关于java - 检索记录时使用 MySql 数据库的 ArrayList 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285087/