🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych
6 messages
6 total messages Started by Roman Tyczka Wed, 16 Nov 2016 10:52
Normalizacja, wydajność, dużo danych
#195146
Author: Roman Tyczka
Date: Wed, 16 Nov 2016 10:52
18 lines
1592 bytes
Mam pytanie do praktyków. Mam sporą (kilka mln rekordów) bazę, która ma
docelowo pracować na wirtualce, więc mocy nie będzie aż tak dużo, szukam
więc optymalizacji.
Główna tabela ma ponad 30 kolumn, ale w praktyce najczęściej będzie
potrzebnych 5 do 10ciu. Czy jeśli podzielę tę tabelę na dwie, gdzie
pierwsza będzie mieć te 10 ważniejszych kolumn, a druga pozostałe to
uzyskam odczuwalną różnicę w odpytywaniu do tej tabeli? Na logikę nie
powinno to mieć znaczenia, ale teoria z praktyką się nie zawsze lubi.
Serwer to Firebird, ale w niedalekiej przyszłości będzie to PostgreSQL.
Zapytania głównie wyszukujące po jednym kluczu. Czasami dwóch lub trzech
(zawartych w tych 10ciu istotnych kolumnach).

Jest sens bawić się w dzielenie czy nie?

-- 
pozdrawiam
Roman Tyczka
Re: Normalizacja, wydajność, dużo danych
#195147
Author: geos
Date: Wed, 16 Nov 2016 12:03
30 lines
2626 bytes
On 16.11.2016 11:52, Roman Tyczka wrote:
>
> Mam pytanie do praktyków. Mam sporą (kilka mln rekordów) bazę, która ma
> docelowo pracować na wirtualce, więc mocy nie będzie aż tak dużo, szukam
> więc optymalizacji.
> Główna tabela ma ponad 30 kolumn, ale w praktyce najczęściej będzie
> potrzebnych 5 do 10ciu. Czy jeśli podzielę tę tabelę na dwie, gdzie
> pierwsza będzie mieć te 10 ważniejszych kolumn, a druga pozostałe to
> uzyskam odczuwalną różnicę w odpytywaniu do tej tabeli? Na logikę nie
> powinno to mieć znaczenia, ale teoria z praktyką się nie zawsze lubi.
> Serwer to Firebird, ale w niedalekiej przyszłości będzie to PostgreSQL.
> Zapytania głównie wyszukujące po jednym kluczu. Czasami dwóch lub trzech
> (zawartych w tych 10ciu istotnych kolumnach).
>
> Jest sens bawić się w dzielenie czy nie?

przeanalizuj zapytania. jeśli wybierają po kilka procent rekordów z 
użyciem indeksu to raczej nie. jeśli wybiera wiele % rekordów z użyciem 
full skanów na tabeli to być może tak. jeśli te 10 najczęściej 
wybieranych kolumn stanowi niewielki fragment rozmiaru wiersza to 
prawdopodobnie tak. jeśli stanowią znaczący rozmiar wiersza to 
prawdopodobnie nie. jeśli jest dostępna indeksowa organizacja tabeli to 
może to być jakieś wyjście aby to wykorzystać i ładować dane z 
pozostałych kolumn do osobnego segmentu. ogólnie odpowiedź można 
udzielić po przeanalizowaniu rozmiaru danych i zapytań, ale też nie musi 
być ona jednoznaczna. metoda empiryczna też jest dobrym podejściem -- 
jak masz środowisko testowe to spróbuj.

pozdrawiam,
geos
Re: Normalizacja, wydajność, dużo danych
#195148
Author: Ronald Kuczek
Date: Wed, 16 Nov 2016 20:46
21 lines
2150 bytes
W dniu 16.11.2016 o 11:52, Roman Tyczka pisze:
>
> Mam pytanie do praktyków. Mam sporą (kilka mln rekordów) bazę, która ma
> docelowo pracować na wirtualce, więc mocy nie będzie aż tak dużo, szukam
> więc optymalizacji.
> Główna tabela ma ponad 30 kolumn, ale w praktyce najczęściej będzie
> potrzebnych 5 do 10ciu. Czy jeśli podzielę tę tabelę na dwie, gdzie
> pierwsza będzie mieć te 10 ważniejszych kolumn, a druga pozostałe to
> uzyskam odczuwalną różnicę w odpytywaniu do tej tabeli? Na logikę nie
> powinno to mieć znaczenia, ale teoria z praktyką się nie zawsze lubi.
> Serwer to Firebird, ale w niedalekiej przyszłości będzie to PostgreSQL.
> Zapytania głównie wyszukujące po jednym kluczu. Czasami dwóch lub trzech
> (zawartych w tych 10ciu istotnych kolumnach).
>
> Jest sens bawić się w dzielenie czy nie?
>
Z mojego doświadczenia wynika, że podział ma sens ale analiza zapytań i 
testy nigdy nie zaszkodzą.

Pozdrawiam
Rony
Re: Normalizacja, wydajność, dużo danych
#195149
Author: M.M.
Date: Thu, 17 Nov 2016 12:42
8 lines
1469 bytes
On Wednesday, November 16, 2016 at 11:52:21 AM UTC+1, Roman Tyczka wrote:

> Jest sens bawić się w dzielenie czy nie?

W każdym przypadku jest trochę inaczej. W jednym przypadku który sprawdziłem
ta technika wyraźnie przyspieszyła.

Pozdrawiam
Re: Normalizacja, wydajność, dużo danych
#195150
Author: Roman Tyczka
Date: Thu, 17 Nov 2016 13:22
11 lines
1144 bytes
On Wed, 16 Nov 2016 11:52:19 +0100, Roman Tyczka wrote:

> Jest sens bawić się w dzielenie czy nie?

Ok, dziękuję za odpowiedzi, wiem, że to sprawa konkretnego przypadku, ale
chodziło mi o przykłady/potwierdzenie, że to może dać efekt odczuwalny i
takie potwierdzenie dostałem, więc podzielę. 

-- 
pozdrawiam
Roman Tyczka
Re: Normalizacja, wydajność, dużo danych
#195151
Author: M.M.
Date: Sat, 19 Nov 2016 15:37
11 lines
1855 bytes
On Thursday, November 17, 2016 at 2:22:03 PM UTC+1, Roman Tyczka wrote:
> On Wed, 16 Nov 2016 11:52:19 +0100, Roman Tyczka wrote:
> 
> > Jest sens bawić się w dzielenie czy nie?
> 
> Ok, dziękuję za odpowiedzi, wiem, że to sprawa konkretnego przypadku, ale
> chodziło mi o przykłady/potwierdzenie, że to może dać efekt odczuwalny i
> takie potwierdzenie dostałem, więc podzielę. 

Wrzuć wyniki jakie uzyskasz po podzieleniu.
Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads