0

我已经阅读了几个关于如何在我的数据库中创建索引列的教程。从Grails 文档中,我知道您必须定义一个索引列。

我的问题是:

  1. 如何处理这些索引列?我必须在查询中使用它们还是 Hibernate 为我做这项工作?

  2. 我如何知道索引应该包含哪些列?

  3. firstName column: 'First_Name', index: 'Name_Idx'和 有什么区别 matrix indexColumn: [name: "the_matrix", type: Integer]

4

1 回答 1

1

如何处理这些索引列?我必须在查询中使用它们还是 Hibernate 为我做这项工作?

您可以像对待数据库中的索引一样对待索引。它将提高数据检索操作的速度。你不需要做任何事情让它工作,因为hibernate在最后生成sql,你的数据库将决定如何使用索引。

How do I know which columns an index should contain?

取决于您对数据库的了解以及如何优化查询,简单的事情是您更频繁地检索数据的列可能需要索引。如果您总是搜索电话号码或姓名,请在它们上创建索引。所有的数据库索引规则也都在这里应用。

What is the difference between: 
firstName column: 'First_Name', index: 'Name_Idx' and 
matrix indexColumn: [name: "the_matrix", type: Integer]

第一个是名为“Name_Idx”的索引的名称,它是可选的。您可以通过定义类型和其他信息来使用第二个添加更多信息。如果您允许 grails 为您生成数据库,它将使用这些信息来创建它们。

更新

根据您的问题,要创建复合索引,请查看此链接

该名称是您在此处构建索引的列的名称。建立索引是更多的数据库问题,如果需要,您需要制作它们。我敢肯定,如果您使用 sql 标签发布该内容,您可以找到更多信息。如果您认为不需要它们,现在就不要这样做,如果应用程序遇到性能问题,那么您可以考虑在查询上建立索引。仅供参考:默认情况下,Grails 将为您的主键创建索引

于 2013-07-21T11:51:44.363 回答