Jeff Atwood wrote once他发现查询数据库中的主键,然后使用 IN 子句获取所有相关字段的速度是单 sql 对应项的两倍。
我想知道这是否适用于所有情况,如果不是,在什么情况下它仍然在性能方面提供了巨大的改进空间?
此外,通过脚本语言库访问db的成本有多高?我主要谈论的是非常著名的 PHP-MySQL 组合。
最佳答案
这要看情况。有时,正如杰夫的博客文章明确指出的那样,它可以提供(显着的)性能提升。但作为一般规则,最好让查询优化器找到它能找到的最佳执行计划,然后尝试手动优化特别慢的查询。
摘自文章,“我们默认使用内置的 Linq 语言结构,并根据性能跟踪结果手动调整旧的 SQL blob。”同样,您应该默认让查询优化器执行其操作,并在性能跟踪告诉您需要时手动调整 SQL 语句。
从脚本语言连接到数据库引擎通常非常快。通常,查询的实际执行将比实际连接到数据库服务器并将结果从数据库服务器移回请求脚本花费的时间要长得多。
关于sql - 查询主键真的值得吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619089/