Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: błąd przy dodawaniu indeksu
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
czachor
Próbuję dodać wspólny indeks (btree) dla 3 pól typu TEXT (title, intro, txt). Otrzymuję komunikat błędu:
Kod
ERROR:  index row requires 27264 bytes, maximum size is 8191.

Pierwszy raz z czymś takim się spotykam. Google milczy, manual pg też. Wie ktoś, o co chodzi?

Aha, indeks chcę założyć dla zapytania 'WHERE title = 'X' OR intro = 'X' OR txt = 'X'. Nie jestem najmocniejszy w stosowaniu indeksów, więc jak ktoś też może powiedzieć, czy dobrze kombinuję, to również będę wdzięczny.
prond
Nie chcę zgadywać dlaczego dostajesz taki błąd, mam pewne przypuszczenia, ale to nie jest istotne ponieważ:
W przypadku zapytanie, jakie podajesz powinieneś założyć 3 osobne indeksy. Wspólny indeks będzie wykorzystany jedynie w takich warunkach:
  1. title = 'string'
  2. title = 'string' AND intro = 'string2'
  3. title = 'string' AND intro = 'string2' AND txt = 'strign3'
czachor
Dzięki.

Co do błędu, dostałem właśnie informację, że ten błąd to długość tekstu w polu. Może być to spowodowane przez to, że powyżej tej wielkości indeks nie działa wydajnie i nie ma sensu zakładanie go... Po złożeniu tych trzech pól w pewnym przypadku przekraczam tą wielkość i wyskakuje błąd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.