[PostgreSQL]Bardzo duża baza danych i problem z prędkością wyszukiwania |
[PostgreSQL]Bardzo duża baza danych i problem z prędkością wyszukiwania |
28.06.2013, 10:31:25
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 1.06.2013 Ostrzeżenie: (0%) |
Baza o której mowa powiększa się codziennie o kilka GB danych więc po roku jej wielkość może sięgnąć 1TB.
>90% powierzchni bazy zajmuje pole o nazwie "content". Jest to pole statyczne, po którym nie będą prowadzone operacje wyszukiwania ani żadne inne (jedynie wyświetlanie tych danych). Wyszukiwanie będzie tylko po kolumnie 'title' która zawiera maksymalnie 20 znaków. Chciałem zapytać, jak organizować dane, żeby wyszukiwanie po tytule nie trwało eony. 1. Czy objętość kolumny 'content' ma jakiś wpływ na szybkość wyszukiwania po kolumnie 'title' ? 2. Czy przeniesienie kolumny 'content' do osobnej tabeli przyśpieszy wyszukiwanie po 'title' ? 3. Czy przeniesienie danych z kolumny 'content' do pliku na dysku przyśpieszy wyszukiwanie w porównaniu do pkt 1 i pkt 2 ? Ten post edytował yafu 28.06.2013, 10:33:30 |
|
|
28.06.2013, 11:30:58
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) |
1. nie
2. nie, raczej zwolni minimalnie bo będziesz musiał użyć drugigo indeksu do łączenia tabel wynikowych 3. nie |
|
|
28.06.2013, 12:30:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) |
Jakiego typu wyszukiwanie? Coś w stylu REGEXP czy LIKE?
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
28.06.2013, 13:36:36
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 071 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Przerabiałem podobny problem przy serwisie, w którym baza również bardzo szybko rosła zajmując -dziesiąt giga. Mogę zatem nieco Ci poradzić:
1. Utwórz kolumnę tsvector przechowującą dane do TSearch i załóż na niej indeks typu gist. 2. Jeśli wyszukiwanie odbywa się w jakiś zakresach czasowych to warto pomyśleć o partycjonowaniu tabeli (np. 1 miesiąc = 1 tabela). 3. Warto zapłacić za odpowiednią konfigurację samego Postgresa przez odpowiedniego fachowca. 4. Nie licz na cuda we wspominanym przeze mnie serwisie finalnie przeszliśmy na wyszukiwanie w tle i powiadamianiu mailowym o uzyskaniu wyniku PS: Przenoszę do odpowiedniego działu. |
|
|
Wersja Lo-Fi | Aktualny czas: 21.09.2024 - 23:06 |