如果列出“节点收藏”中对应的主题,如何书写最有效率的 SQL?

2015-05-11 17:13:24 +08:00
 daijia1123
当前节点收藏中是列出收藏的节点,点击节点后才能查看相应主题。
如果想进入后,直接按时间顺序列出收藏节点的相应主题该如何做最有效率?SELECT * FROM Topics WHERE id IN (SELECT id FROM nodes WHERE userid=uid),这种方式感觉效率不会高。
数据库结构是否也有特别需要注意的地方(除了索引等)?
2817 次点击
所在节点    MySQL
3 条回复
anoymoux
2015-05-11 17:30:20 +08:00
SELECT * FROM Topics t,nodes n WHERE t.id =n.id and n.userid=uid
anoymoux
2015-05-11 17:30:49 +08:00
SELECT t.* FROM Topics t,nodes n WHERE t.id =n.id and n.userid=uid
fangjinmin
2015-05-11 17:31:16 +08:00
设计上没有什么问题。问题是你用了子查询,一般来说不会快。这样会好一些,select * from topics join nodes on (topics.id = nodes.id) where nodes.userid=uid,然后nodes的userid和id都加上索引。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/190212

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX