在Grails中,您可以向域类添加custom indices。
答案 0 :(得分:4)
这不是Grails的问题,除了关于何时以及Grails创建索引的部分。您需要它们,就像在任何使用数据库的应用程序中一样 - 创建它们以提高查找性能。
Grails实际上并没有创建任何内容,Hibernate在生成创建表的DDL时会这样做。您可以通过运行grails schema-export
随时查看此DDL - 生成的文件将为target/ddl.sql
。
通常,您会看到通常会创建唯一索引的唯一约束,在MySQL和其他一些数据库中,您将看到在外键上创建的索引(但由于某些原因,这不是为Oracle完成的)。 / p>
如您在问题中所述,有一些映射支持让Hibernate创建索引,但一般来说,您需要自己创建它们,因为它们通常是特定于数据库的。请使用http://grails.org/plugin/database-migration插件。
答案 1 :(得分:0)
通常,您将在频繁查询和具有高执行成本的查询的列上使用索引。使用任何关系数据库和任何开发框架都会发生这种情况。
关于Grails,我发现这篇文章对于如何在Grails中定义索引非常有用:http://grails.asia/grails-how-to-create-custom-table-index-or-composite-index