在 Grails 中,您可以将自定义索引添加到您的域类。
- Grails 是否默认为我的表格生成索引?
- 是否有规则我必须将哪些列用于我的索引?
- 设置索引后,我的查询会改变吗?
在 Grails 中,您可以将自定义索引添加到您的域类。
这不是一个真正的 Grails 问题,除了关于 Grails 何时以及是否创建索引的部分。您需要它们,就像在任何使用数据库的应用程序中一样 - 创建它们以提高查找性能。
Grails 实际上并没有创建任何东西,Hibernate 在生成创建表的 DDL 时会这样做。您可以通过运行随时查看此 DDL grails schema-export
- 生成的文件将是target/ddl.sql
.
通常,您会看到通常会创建唯一索引的唯一约束,并且在 MySQL 和其他一些数据库中,您会看到在外键上创建的索引(但出于某种原因,这不适用于 Oracle)。
正如您在问题中指出的那样,有一些映射支持可以让 Hibernate 创建索引,但通常您需要自己创建它们,因为它们通常是特定于数据库的。为此,请使用http://grails.org/plugin/database-migration插件。
通常,您将在属于频繁查询和执行成本高的查询的一部分的列上使用索引。这将使用任何关系数据库和任何开发框架发生。
关于 Grails,我发现这篇文章对如何在 Grails 中定义索引非常有用:http: //grails.asia/grails-how-to-create-custom-table-index-or-composite-index