让我检查一下 Meta 中这些查询的执行计划。
在 Meta 上查询速度相当快,但我能理解它们在性能较弱的数据库上可能表现不佳。我们使用的是 ActiveRecord,代码相当整洁,但生成的 SQL 却相当混乱。
手动编写 SQL 后,我们可以让查询利用现有索引,从而大幅优化性能:
优化前
优化后
在优化后的查询中,我们仅检索用户的帖子,避免了因关联操作过晚而导致的帖子循环问题。
因此,我认为我们可以在不增加索引开销的情况下获得更好的性能。