專家mysql的意見,我需要一些幫助設計一個朋友系統我需要做一個朋友的系統
MySQL表:
friends_名單
- AUTO_ ID
- friend_ ID
- 用戶_ ID
- approved_狀態
選項1 =每次用戶添加一個用戶有2項添加到數據庫中,我們才能得到有這樣的朋友
SELECT user_id FROM `friends_list` WHERE friend_id='$userId' and approved_status='yes'
選項2 =我們添加添加1項爲每一位朋友,然後讓好友列表這樣
SELECT friend_id AS FriendId FROM `friends_list` WHERE user_id='$userId' and approved_status='yes'
UNION
SELECT user_id as FriendId FROM `friends_list` WHERE friend_id='$userId' and approved_status='yes'
2種方法爲在如MySpace,Facebook的網站有朋友以上,所有其他網站都會這樣做,以上兩種方法中的哪一種會是最佳性能?
第一種方法使行數增加一倍,例如一個擁有200萬個朋友行的網站只有100萬行第二種方法。
然而,聯合方法意味着有2個查詢正在進行,所以2個查詢在一百萬行表而不是1?
UPDATE
我只是跑在60000樓的朋友一些測試和這裏的結果,是的表進行索引。
選項1每個朋友有2個條目;
0.0007秒
選項2,每使用UNION朋友1項選擇
0.3100秒
是選擇朋友快是最重要的 – JasonDavis 2009-08-10 13:05:16