我的应用程序在 Hibernate 中使用 JPA,我看到 hibernate 在我的日志文件中生成了一些有趣的 SQL 查询,其中包含很多连接。该应用程序现在没有很多用户,我担心当数据库规模增长时,hibernate 生成的一些查询会导致问题。
我已经通过 EXPLAIN 命令运行了一些由 hibernate 生成的 sql 查询,以查看生成的查询计划。
EXPLAIN 的输出是否取决于数据库的大小?当我的数据库变大时,查询计划器会为相同的 SQL 查询生成不同的计划吗?
在开发/部署周期的哪个阶段,我应该查看 hibernate 生成的 sql 查询的 SQL 查询计划?什么时候是使用 EXPLAIN 的合适时机。
当数据库如此之小以至于无论看起来多么复杂的每个查询都在 0.5 秒内运行时,explain 的输出如何用于确定查询是否会成为问题?
我使用 Postgres 9.1 作为我的应用程序的数据库,但我对上述问题的一般答案很感兴趣。