悬赏分:5 该问题已到期 浏览:249 次
|
如果表的结构确实如此简单,使用的不是非常古老(比如2000年以前发布的版本)的DBMS,并且数据库与Web服务器在同一台计算机上的话,不管使用inner join还是in等任何方式,联表查询与否对效率应该基本不会造成可以观测到的影响.
但是如果数据库在另一台计算机上,每次查询都会有的网络延迟就会让联表查询大大地优于1+N查询. 视图带来的唯一好处是让开发变得更简单,对性能则只会有所降低,不可能提升.这个与权限检查有关. 推荐实现方式: 1,每次只取一条/几条同一类型的数据,缓存起来.用的时候从缓存取,如果没有再从数据库里抓到缓存(推荐这种方式,既简单又实用,由于80/20原则的存在,通常性能不会比跨表查询低). 2,使用跨表查询,比如: select top 20 c.id, c.uid, c.content, c.createdate, f.fid, u.uname, u.email from t_comment c, t_friend f, t_user u, where c.uid = f.uid and u.uid = f.fid order by c.createdate desc |