您现在的位置是:首页 >

访问量和浏览量 在数据量和访问量剧增条件下保持数据库效率[2]

火烧 2022-08-25 11:09:28 1035
在数据量和访问量剧增条件下保持数据库效率[2]   有些人在网上说再增加一张中介表可以提高速度  中介表 li ker uid mid   中介表是这样用的 每次当一个人发了一篇帖子 则将所有订阅他的
访问量和浏览量 在数据量和访问量剧增条件下保持数据库效率[2]

在数据量和访问量剧增条件下保持数据库效率[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  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码