2014-10-19 85 views
0

我正在開發一個應用程序,該應用程序包含以下內容,就像Twitter & Instagram一樣。我有一個關於索引追隨者表的問題。帶上我的兩個MYSQL表格。MYSQL關注者系統:爲關注者建立索引表

users 
- user_id 
- username 
... 

followers 
- id 
- user_id 
- follower_id 
... 
index(user_id,follower_id) 

我一直在閱讀有關指數:http://www.slideshare.net/billkarwin/how-to-design-indexes-really。 根據我的理解,索引按指定索引中的最左列進行排序。所以在這種情況下,它的user_id和follower_id分散在整個表中?

*followers Table 
id user_id follower_id 
————————————————————-------- 
1  5   6 
2  5   8 
3  5   11 
4  7   6 

所以,如果我運行簡單的查詢,下面應該是有效的,讓我找回誰X用戶的人如下:

SELECT * FROM followers WHERE user_id=5 

但是,如果我需要讓人們發生了什麼誰跟隨某人?例如:

SELECT * FROM followers WHERE follower_id = 6 

根據我的理解,follower_id只會按照user_id列的順序排序。因此,它貫穿整個表格並且整個表格必須被檢查?

解決這個問題的最好方法是什麼?我誤解了什麼?

回答

1

請參閱here

從你的榜樣,這一點突出:

MySQL使用索引這些操作:

要找到匹配的快速WHERE子句的行。

我會索引user_idfollower_id,與正常的索引類型。

此外,請務必閱讀多列索引,因爲它可以派上用場。