grails / SQL会自动知道要使用哪些索引吗?

时间:2012-08-13 21:32:36

标签: sql grails indexing gorm

我有一个包含两个属性的简单域类。例如:

class Person {
  String firstName
  String lastName
}

现在我想用动态查找器找到一个名叫“Some Guy”的人:

def thisGuy = Person.findByFirstNameAndLastName("Some","Guy")

我应该在我的person类中添加什么来在数据库中创建正确的索引以使此搜索快速进行?这是我目前的猜测:

static mapping = {

    firstName index: 'Name_Idx'
    lastName  index: 'Name_Idx'
}

这是正确的,还是我应该为每个做一个索引?

static mapping = {
    firstName index: 'Fname_Idx'
    lastName index: 'Lname_Idx'
}

1 个答案:

答案 0 :(得分:3)

如果您使用:

static mapping = {
        firstName index: 'name_idx'
        lastName index: 'name_idx'
        description index: 'name_idx'
}

这将在索引 name_idx 中创建3列。

请记住,列将按字母顺序列出。

如果你的意思是“什么是最好的:多个索引或多列索引?”嗯,这很大程度上取决于它。但是,总而言之,this post会让你走上正确的道路。您正在寻找的答案取决于您最常用的查询和分组的where子句。