Уровень "комплекса" может быть немного рискованным здесь, но, пока алгоритм не требует, чтобы доктор философии в математике решил,
я сказал бы разрешение и использовал бы алгоритмы. Удостоверьтесь, что поместили достойный уровень документации о названии алгоритма, и возможно краткого описания того, как это работает или ссылка на документ об этом.
Это подавит объем кода, надо надеяться, даст немного дополнительной производительности приложению, и это, надо надеяться, поощрит несколько программистов вокруг Вас изучать некоторые новые вещи добавить к их репертуару. Плюс всегда существует шанс, что программист, который знает эти вещи, не будет входить позже.
Решение, которое сработало для меня для многоколоночных индексов:
class ClassName {
String name
String description
String state
static mapping = {
name index: 'name_idx'
description index: 'name_idx'
state index: 'name_idx'
}
}
Это создает индекс с именем name_idx с тремя столбцами в индексе.
Оборотная сторона: столбцы перечислены в указателе в алфавитном порядке, а не в том порядке, в котором они были введены.
AFAIK, указанное закрытие здесь никогда не было реализовано, поэтому эти примеры следует игнорировать (эта страница предназначена для обсуждения возможных реализаций, а не документирование фактической реализации).
Правильный способ определения индекса с одним столбцом name_idx
для свойства name
:
static mapping = {
name index:'name_idx'
}
Извините, но я не знаю, как определите многостолбцовый индекс, попробуйте список рассылки Grails , если вы не получите здесь ответа. В том маловероятном случае, когда индексы с несколькими столбцами не могут быть объявлены непосредственно в доменных классах, вы можете определить их в файле SQL, который создает их, если они еще не существуют (или отбрасывает и воссоздает их). Этот файл SQL может быть выполнен закрытием init
в Bootstrap. groovy
Чтобы сделать ваш индекс многостолбцовым, перечислите столбцы с разделителями запятой (обратите внимание, без пробелов после запятой, чтобы избежать этой ошибки . Второй URL-адрес, на который вы указываете обнаруживает ошибку, как говорится:
index:'Name_Idx, Address_Index'
с пробелом; он должен работать как
index:'Name_Idx,Address_Index'
Первый URL-адрес, на который вы указываете, был предложенным изменением (я не верю, что это реализовано в настоящее время, и не знаю, насколько вероятно когда-либо быть).