ben*_*njy 22 database performance for-loop
一般来说哪个更贵?一个双嵌套的for循环,一次调用数据库或只调用一个for循环中的每个N项的数据库?
没有找到一个微秒的答案,只是我应该采取的方向的一般概念.
TIA.
Ada*_*kin 46
通常,您访问数据库的次数越少越好.这有很多原因,包括:
通常,在内存中执行的任何操作(for循环)都比在网络上完成的操作(数据库调用)更快.然而:
for i = 1 to num_users
get user from database
end
Run Code Online (Sandbox Code Playgroud)
会慢一些
get users 1 to num_users from database (in one query)
Run Code Online (Sandbox Code Playgroud)
因为它的数量的时候,你问数据库的东西,真正重要的.
这在很大程度上取决于。
如果只有几百个项目,嵌套循环将比数据库调用快得多。数据库调用通常涉及通过局域网或更糟糕的互联网传输数据。每次都必须解析查询,依此类推。
但是,如果您在一个数据库查询中搜索了数千或数百万个项目,那么 sql 查询会快很多,因为数据库系统经过高度优化以处理大量数据。但不要忘记为您的表创建索引。
如有疑问,您应该衡量每种方法所花费的时间,如果它只是让您更好地了解性能的表现。