Grails 添加域字段作为数据库索引

Posted

技术标签:

【中文标题】Grails 添加域字段作为数据库索引【英文标题】:Grails add domain field as database index 【发布时间】:2011-12-09 14:45:39 【问题描述】:

我在我的项目中使用 grails 1.2.2 和 1.3.7。 我想为域的表添加索引。

class Test 
String name
String surname

static mapping = 
name column: 'name', index: 'test_dx'
surname column: 'surname', index: 'test_dx'

我尝试了两个版本的 grails 和 dbCreate = "create" 或 dbCreate = "create-drop" 或 dbCreate = "update" (是我想要使用的),但没有创建“自定义索引”。

【问题讨论】:

您是否需要特定类型的索引,例如唯一索引? 第一步我只需要一个索引,而不是唯一的。下一步应该定义一些唯一索引(例如:姓名和姓氏应该是唯一的) 【参考方案1】:

你的例子对我有用。如果我在update 模式下使用 mysql 数据库运行我的应用程序,那么我会从 MySQL 控制台获取此信息:

mysql> show index from test;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| test  |          0 | PRIMARY  |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |
| test  |          1 | test_dx  |            1 | name        | A         |           0 |     NULL | NULL   |      | BTREE      |         |
| test  |          1 | test_dx  |            2 | surname     | A         |           0 |     NULL | NULL   |      | BTREE      |         |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
3 rows in set (0.00 sec)

你用的是什么数据库?

【讨论】:

以上是关于Grails 添加域字段作为数据库索引的主要内容,如果未能解决你的问题,请参考以下文章

grails 索引页面的最佳实践

sqlserver 日期字段 索引问题

oracle中索引的使用

合理优化数据库表结构提高项目执行效率[数据库设计]

在 Grails 中映射遗留数据库表时避免表更改?

浅谈索引