如何找出用戶是否已經註冊,例如:在一個Web應用程序?就像我擁有一百萬用戶的數據庫一樣。每次比較數據庫中的每一行都是低效的。有沒有其他最佳方法?找出用戶是否已經註冊的最佳方式
回答
您可以優化query
。你可以保持用戶的唯一用戶名(或你的唯一參數),當有人試圖註冊,您可以傳遞一個usename
查詢和檢查已註冊或不
是的,而作爲名稱,或IP,可以是相同的!明顯的比較將僅限於用戶名或電子郵件,檢查是否存在,因此每行都必須被查詢! –
@RachitMishra你可以看到Balusc的第二個例子,這正是我所說的。通過用戶名和檢查天氣記錄是否可用。 –
是的兄弟,我同意你的意見,BTW +1 NTR。 –
每一次每一個行數據庫進行比較,是低效
據我瞭解,你被一個SELECT * FROM User
牽引整個數據庫表中的內容轉換成Java的內存中,然後每一行,我遍歷n a while
循環並將其用戶名equals()
與下圖進行比較,這是真的嗎?
public boolean exists(String username) throws SQLException {
// ... Declare, etc.
statement = connection.prepareStatement("SELECT * FROM User");
resultSet = statement.executeQuery();
while (resultSet.next()) {
if (username.equals(resultSet.getString("username"))) {
return true;
}
}
return false;
// ... Close, etc (in finally!)
}
那麼這確實是非常低效。您應該將索引用戶名列(它可能已經是UNIQUE
約束),然後使用SQL WHERE
子句。它將返回零或一行,數據庫將盡其最大的努力,通常比上述Java方法快得多。
public boolean exists(String username) throws SQLException {
// ... Declare, etc.
statement = connection.prepareStatement("SELECT id FROM User WHERE username = ?");
statement.setString(1, username);
resultSet = statement.executeQuery();
return resultSet.next();
// ... Close, etc (in finally!)
}
概括地說,只要你正確地使用數據庫索引和編寫SQL查詢,以使其返回正是你需要,沒有任何必要的信息爲使用Java或過濾附加查詢之後,那麼這將是最有效的方法。
- 1. 尋找域名是否已經註冊?
- 2. 知道用戶是否已註銷的最佳方法
- 3. 檢查jQuery「Fancybox」是否已經註冊?
- 4. 如何驗證用戶是否已經註冊?
- 5. XMPP Smack 4.1.0檢查用戶是否已經註冊
- 6. Twitter數字:如何檢查用戶是否已經註冊
- 7. 檢查用戶名是否已註冊
- 8. 全球註冊ClientScript的最佳方式?
- 9. 處理用戶註冊的最佳方式
- 10. 註冊表格返回你已經註冊的用戶
- 11. UniversalConnectionPoolManagerMBean已經註冊
- 12. 註冊用戶火力並登錄,如果已經註冊
- 13. 找到用戶的最佳方式
- 14. 如何驗證用戶是否已經註冊的課程在PHP
- 15. 投票腳本(註冊和未註冊用戶)的最佳做法是什麼?
- 16. 找不到方法來檢查用戶是否已經存在
- 17. 在Django中註冊用戶的最佳方法
- 18. 通道'tcp'已經註冊
- 19. FlatPage模型已經註冊
- 20. 找出對象是否已經在NSMutableArray中的最有效方法?
- 21. 管理1000多名用戶同時註冊會議活動的最佳方式
- 22. 檢查表單是否已提交的最佳方式(php)
- 23. 找出已安裝版本的iPhone SDK的最佳方式是什麼?
- 24. 最佳方式爲用戶
- 25. FLEX:檢查Object是否已經添加到ArrayCollection的最佳方法是什麼?
- 26. 驗證註冊表是否已經執行
- 27. 檢查廣播接收機是否已經註冊?
- 28. 如何檢查ActiveX DLL是否已經註冊?
- 29. 檢查轉換器是否已經註冊
- 30. mvvm light messenger檢查課程是否已經註冊?
是的,可能是他註冊了不同的名稱,或IP或用戶名!明顯的比較將僅僅是用戶名,檢查它是否存在! –