何时以及如何在Grails中创建索引?

时间:2013-07-04 22:35:34

标签: database hibernate grails gorm grails-2.0

在Grails中,您可以向域类添加custom indices

  1. Grails默认为我的表格生成索引吗?
  2. 我的索引需要使用哪些列?
  3. 设置索引时我的查询是否会更改?

2 个答案:

答案 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