繁体   English   中英

在SQL Server中获得最佳性能的最佳实践

[英]Best practice to achieve max performance in SQL Server

效率更高(更快)的方法是:将相同的tweet两次存储在Tweet表中,一次存储给user1 ,一次存储给user2或者使用TweetFriend之间的join获取结果?

Tweet => Id
         UserId
         SenderId
         JSONdata

User =>  Id

Friend => UserId 
          FriendId 

与加入:

SELECT TOP 20 a.* FROM Tweet a INNER JOIN Friend b ON a.SenderId = b.UserId WHERE b.UserId = {0} 

或者我可以为发件人和收件人将推文保存两次,并使用一个简单的查询:

SELECT TOP 20 * FROM TWEET WHERE UserId = {0}

哪一种速度更快,如果要连接,那么我应该使用哪种类型的索引,我将很高兴听到任何建议。

谢谢

只需存储一次数据(推文),您就不会有任何一致性问题。 除非您将其开发为繁重的OLAP系统(即数据仓库),否则应该进行标准化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM