您现在的位置是:首页
>
访问量和浏览量 在数据量和访问量剧增条件下保持数据库效率[2]
在数据量和访问量剧增条件下保持数据库效率[2] 有些人在网上说再增加一张中介表可以提高速度 中介表 li ker uid mid 中介表是这样用的 每次当一个人发了一篇帖子 则将所有订阅他的
![访问量和浏览量 在数据量和访问量剧增条件下保持数据库效率[2]](http://img.zhputi.com/uploads/7b13/7b13f25099078b14f52decf4804e15d413795.jpg)
在数据量和访问量剧增条件下保持数据库效率[2]
有些人在网上说再增加一张中介表可以提高速度
中介表 linker (uid mid)
中介表是这样用的 每次当一个人发了一篇帖子 则将所有订阅他的人(uid)和这篇帖子的mid插入中介表里 例如 uid= 的人有 个订阅者 分别为 则当uid= 的人发了一篇帖子mid= 时 就应往linker表里插入这些数据 ( ) ( ) ( ) 这样 对一个uid而言 linker表和msg表就形成了一对一的关系 查询的时候 只需级联linker表和msg表就行了 如下 (还是以查uid= 的为例)
) SELECT * FROM msg linker WHERE msg mid=linker mid and linker uid= ;
这样乍看好像比 )要快一些 因为就一个uid而言linker表和msg表是一对一的关系 而方法 )的却是一对多的关系 而且 有些人认为 就算不这么看 因为方法 )在插入时比方法 )多做了很多操作 所以查询的速度应该能比方法 )快 至少不会比方法 )慢
我实际测试下来的结果是 方法 )比方法 )慢了至少 倍的时间 而且数据量越大 慢得就越多 测试结果
a) user有 条 friend有 条 msg有 条时 平均查询时间
方法 )是 s 方法 )是 s )比 )慢 倍
b) 当msg有 条时 方法 )是 s 方法 )是 s )比 )慢 倍
(以上结果都是在建了索引之后的)
lishixinzhi/Article/program/SQL/201311/16303 很赞哦! (1035)