我来自非计算机科学背景,现在我作为Ruby on Rails开发人员使用active_record从数据库提取值。在阅读rails可伸缩性问题时,我发现很多地方是'N query' 'N + 1 queries' 'N log N'
我不熟悉。我希望你们帮助我解释所有这些,以及我可以在哪里找到一个很好的博客或网站来解释所有这些术语。如何编写漂亮的查询
3
A
回答
2
这里有2件独立的事情:
- N日志N,N^2等,这些是指一个算法的运行时间作为其输入大小的函数
术语N + 1查询指的是非常具体的问题。假设您有标准的博客示例应用程序,其中Post和Author为模型。我可能会选择收集所有实际写过文章的作者的姓名:
names = Post.all.collect {| post | post.author.name}
这将触发对每一个职位一个额外的SQL查询,所以如果你有ñ职位,那么你会最终做N + 1个查询。所有这些额外的将是非常快的查询,但开销/延迟加起来很快,所以它可以减缓东西下降
Rails active record guide解释了这一点,缓解轨道使可用。
2
这三个例子是描述算法需要做多少工作才能获得最终结果的速记方式。
看看这里的更多信息:
http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions
相关问题
- 1. 更漂亮的ActiveRecord查询
- 2. 如何写得很漂亮?
- 3. 如何写更长的IF更漂亮?
- 4. htaccess重写用户漂亮的网址来执行查询
- 5. Mod用查询字符串重写URL到漂亮的网址
- 6. 更漂亮的方式来写这个查询?
- 7. 如何不使用C#DataSet中的漂亮打印编写XML
- 8. 如何在模板中编写一个漂亮的JSON文件?
- 9. 如何编写自定义的漂亮打印机
- 10. 如何将查询网址重写为现有更漂亮的网址?
- 11. 需要建议formore漂亮sql查询
- 12. 如何漂亮地打印Hibernate查询结果?
- 13. 更漂亮,缩进,漂亮的印刷
- 14. 如何编写SPARQL查询?
- 15. 如何编写LINQ查询?
- 16. 如何编写此查询?
- 17. 如何编写MySQL查询
- 18. 如何编写HQL查询
- 19. 如何编写此查询?
- 20. 如何编写SQL查询?
- 21. 如何编写HQL查询?
- 22. 如何编写MySQL查询
- 23. 如何编写mysql查询?
- 24. 如何编写on_change查询?
- 25. 如何编写Nhibernate查询
- 26. 如何编写Tableau查询?
- 27. 如何编写SQL查询?
- 28. 如何编写子查询?
- 29. 如何编写查询
- 30. 如何编写unpivot查询?