То, почему является Текстовым Поиском PostgreSQL GiST, индексирует настолько медленнее, чем индексы GIN?

Можно использовать javap инструмент, чтобы лично убедиться. Скомпилируйте следующий код:

public class AutoboxingTest
{
    public static void main(String []args)
    {
        Integer a = 3;
        int b = a;
    }
}

, Чтобы скомпилировать и демонтировать:

javac AutoboxingTest.java
javap -c AutoboxingTest

вывод:

Compiled from "AutoboxingTest.java"
public class AutoboxingTest extends java.lang.Object{
public AutoboxingTest();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

public static void main(java.lang.String[]);
  Code:
   0:   iconst_3
   1:   invokestatic    #2; //Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
   4:   astore_1
   5:   aload_1
   6:   invokevirtual   #3; //Method java/lang/Integer.intValue:()I
   9:   istore_2
   10:  return

}

Таким образом, как Вы видите, автоупаковка вызывает статический метод Integer.valueOf(), и автораспаковывание вызывает intValue() на, учитывая Integer объект. Нет ничего иного, действительно - это - просто синтаксический сахар.

16
задан Bill Karwin 8 October 2009 в 20:49
поделиться

1 ответ

try

CREATE INDEX PostText_GIST ON Posts USING GIST(PostText varchar_pattern_ops);

, который создает индекс, подходящий для префиксных запросов. См. Документацию PostgreSQL на Классы операторов и семейства операторов . Оператор @@ имеет смысл только для векторов термов; индекс GiST (с varchar_pattern_ops) даст отличные результаты с LIKE.

6
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: