【发布时间】:2023-03-18 01:14:01
【问题描述】:
如何明确告诉 Hibernate 使用或不使用 SQL 索引?
如果 Hibernate 发现它可以有效地利用资源,它还会创建 SQL 索引吗?
【问题讨论】:
标签: java sql hibernate indexing
如何明确告诉 Hibernate 使用或不使用 SQL 索引?
如果 Hibernate 发现它可以有效地利用资源,它还会创建 SQL 索引吗?
【问题讨论】:
标签: java sql hibernate indexing
How can I explicitly tell Hibernate to use or not to use SQL index
强制进行全表扫描的最简单方法是删除索引。为什么要维护一个您无论如何都不想使用的索引。
Hibernate 是一个 ORM 工具,它是决定如何执行查询的底层数据库——是否使用索引。因此,如果您想保留索引,并且您认为查询计划器在不应该选择索引时选择了索引,那么也许您可以扭曲 sql 查询,使其导致全表扫描,或者使用数据库特定的 sql 语法 - Oracle 中的SELECT FULL()...,Postgresql 中的enable_indexscan(false) 等(如果您的数据库存在这种情况)。
如果 Hibernate 发现它会有效使用,它是否会创建 SQL 索引 资源
没有。
【讨论】: