2010-11-09 34 views
0

我正在運行一個社交網站,我目前在用戶表中擁有最主要的用戶數據(真實姓名,用戶名,電子郵件,密碼,性別等)。在設計方面,將用戶名+密碼移到單獨的表中會有性能改進嗎?用戶名/密碼在單獨的表或用戶表中?

我正在使用mysql。

+0

http://stackoverflow.com/questions/1086896/db-design-members-table-separate-or-all-in-one-table – 2010-11-09 13:09:56

回答

0

由於表的尺寸較小,只需要用戶名和密碼的身份驗證查詢運行速度會稍快一些。

但是,如果你創建(username, password_hash)一個綜合指數,它會更快,因爲這樣的疑問:

SELECT password_hash 
FROM users 
WHERE username = 'myusername' 

只需要指數運行(這將在計劃顯示using index) 。

+0

無需索引password_hash,因爲用戶名最可能是唯一的。總是返回0或1行的查詢。 – cherouvim 2010-11-09 13:15:29

+0

索引中password_hash的目的不是爲了使其唯一,而是爲了使其更快,因爲Quassnoi聲明在找到該行後不需要轉到表數據。 – 2010-11-09 13:26:44

+0

無論用戶名和密碼在哪裏,都不需要爲兩個字段建立索引,因爲用戶名可能是唯一的。查詢'user =?並且pass =?'將使用用戶名的唯一索引非常快地返回,而不管密碼是什麼。 – cherouvim 2010-11-09 13:29:58

相關問題