有些人在网上说再增加一张中介表可以提高速度
中介表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)比)慢倍
(以上结果都是在建了索引之后的)
[] [] []