Jestem nowicjuszem w postgres. Mam kolumnę o nazwie host
(ciąg varchar2) w tabeli, która ma około 20 milionów wierszy. Jak korzystać z indeksowania, aby zoptymalizować moje wyszukiwanie, aby znaleźć konkretnego hosta. Co więcej, ta kolumna będzie aktualizowana codziennie, czy muszę pisać indeksowanie spustu w określonym przedziale czasowym? Jeśli tak, w jaki sposób mogę to zrobić? (Dla Records Używam Ruby i Rails 3)Indeksowanie PostgreS?
Odpowiedz
Zakładając robisz dokładne wyniki, należy po prostu być w stanie utworzyć indeks i pozostawić go:
CREATE INDEX host_index ON table_name (host)
optymalizator kwerendy należy używać tylko, że automatycznie.
Możesz chcieć określić inne opcje, takie jak sortowanie, które chcesz użyć.
Aby uzyskać więcej informacji, patrz PostgreSQL docs for CREATE INDEX.
Proponuję użyć od czasu wprowadzenia go z PostgreSQL 9.5 zamiast tradycyjnego indeksu btree.
Do wyszukiwania tekstu zaleca się stosowanie typów indeksów GIN lub GiST.
https://www.postgresql.org/docs/9.5/static/textsearch-indexes.html
Inną możliwością jest to, że jeśli były tylko wykonując dokładne dopasowanie w kolumnie host
, czyli nie ma porównania nierówność (>
, <
) i częściowe dopasowanie (like
, wieloznaczny) zaangażowany, można rozważyć przekształcenie host
do wartości skrótu, aby znacząco przyspieszyć wyszukiwanie.
- 1. częściowe indeksowanie mysql, indeksowanie wsteczne
- 2. Indeksowanie Internetu
- 3. Postgres Duża wyszukiwarka tekstowa
- 4. Wyłącz indeksowanie na netbeans
- 5. Pełne indeksowanie wiersza polecenia?
- 6. PHP: indeksowanie ciągów znaków
- 7. JavaScript indeksowanie pętla problem
- 8. C++ Indeksowanie wielowymiarowych tablic
- 9. Ponowne indeksowanie po pandas.drop_duplicates
- 10. Ponowne indeksowanie/odświeżanie SectionIndexer
- 11. Zrozumienie pandy dataframe indeksowanie
- 12. Logical indeksowanie z listami
- 13. Indeksowanie kolumny wyrażenie MATLAB
- 14. Indeksowanie Eclipse nie działa
- 15. dynamiczne indeksowanie dokumentów awk
- 16. Ponowne indeksowanie ramek danych
- 17. Jak przyspieszyć indeksowanie OpenGrok
- 18. Scrapy - Indeksowanie całej witryny
- 19. Jak włączyć indeksowanie w Xcode?
- 20. Indeksowanie i wyszukiwanie plików Python
- 21. Dane sprężyny - indeksowanie MongoDB DBRef
- 22. Wydajne indeksowanie struktur w MATLAB
- 23. Literatura Haskell: Referencje i indeksowanie
- 24. indeksowanie do tablicy z wiatru
- 25. Mongoose indeksowanie w kodzie produkcji
- 26. Indeksowanie w kontenerach: podstawy matematyczne
- 27. Indeksowanie aplikacji dla zawartości dynamicznej
- 28. Indeksowanie indeksów pól modelu Django
- 29. nie można utworzyć postgres użytkownika: rola "postgres" nie istnieje
- 30. PostgreSQL vs Postgres Plus
, więc nie muszę pisać wyzwalacza? Czy indeksowanie zostanie zaktualizowane w miarę aktualizowania moich rekordów? –
Indeksowanie jest aktualizowane podczas aktualizacji rekordów. Ogólna zasada mówi, że każdy indeks przyspiesza pobieranie, ale spowalnia aktualizowanie informacji. Należy więc zachować ostrożność przy wyborze struktury indeksu, ponieważ może to znacząco wpłynąć na wydajność aktualizacji. – J0HN