在之前使用 Mysql 数据库的项目中,当大量数据添加到表中时,我不得不使用ANALYZE tablename
该数据库,以便数据库为 SQL 创建合理的查询计划。
现在我将 H2 与 Hibernate 一起使用,我是否需要再担心这个问题或者 Hibernate 会为我处理这个问题?
除非在非常特殊的情况下,您不再需要手动运行语句ANALYZE
,因为 H2 的最新版本会不时自动更新统计信息(您可以顺便更改此设置)。它在旧版本的 H2 中是必需的(我忘记了实现自动分析的确切时间,我想大约是两年前)。
对于任何数据库,Hibernate 都不会为您解决这个问题。
此外,H2 也有自己的优势和劣势。随着时间的推移,您会发现 H2 与您的应用程序发生冲突的新地方,您将不得不提出新的解决方案。