有些人在網上說再增加一張中介表可以提高速度
中介表linker (uid mid)
中介表是這樣用的每次當一個人發了一篇帖子則將所有訂閱他的人(uid)和這篇帖子的mid插入中介表裡例如uid=的人有個訂閱者分別為則當uid=的人發了一篇帖子mid=時就應往linker表裡插入這些數據( ) ( ) ( )這樣對一個uid而言linker表和msg表就形成了一對一的關系查詢的時候只需級聯linker表和msg表就行了如下(還是以查uid=的為例)
) SELECT * FROM msg linker WHERE msgmid=linkermid and linkeruid=;
這樣乍看好像比)要快一些因為就一個uid而言linker表和msg表是一對一的關系而方法)的卻是一對多的關系而且有些人認為就算不這麼看因為方法)在插入時比方法)多做了很多操作所以查詢的速度應該能比方法)快至少不會比方法)慢
我實際測試下來的結果是方法)比方法)慢了至少倍的時間而且數據量越大慢得就越多測試結果
a) user有條friend有條msg有條時平均查詢時間
方法)是s方法)是s)比)慢倍
b) 當msg有條時方法)是s方法)是s)比)慢倍
(以上結果都是在建了索引之後的)
[] [] []
From:http://tw.wingwit.com/Article/program/SQL/201311/16303.html