• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Optymalizacja bazy danych -> plusy i minusy

Object Storage Arubacloud
0 głosów
755 wizyt
pytanie zadane 20 września 2016 w SQL, bazy danych przez Trucik Obywatel (1,130 p.)

Hej,

 

Poszukuję informacji na temat normalizacji bazy danych. Zadam pytanie na klasycznym przykładzie biblioteki tj.

3tabele:

image

Weźmy na tapetę tabele czytelnik. Na ile sensownym jest wyciągnięcie jako osobnej tabeli i stworzeniem relacji miasta przy założeniu, że obsługuję całą Polskę i w mojej bazie będzie 10 milionów czytelników? 

Z tego co do tej pory czytałem. Zyskam trochę miejsca na dysku, ale za to stracę na prostocie pisania kwerend (przy założeniu, że zrobię taki z większością kolumn np. imię (też często będzie się powtarzać)).

Pytanie najważniejsze: jak ma się do tego prędkość odpowiedzi SQL'a? Który z wariantów jest szybszy.

Jeśli ktoś mógłby wskazać dobrą literaturę traktującą o projektowaniu baz danych będę bardzo wdzięczny :).

Oczywiście mój rzeczywisty przykład jest znacznie bardziej skomplikowany, ale pisanie wywodów na ten temat jest bez sensu :). 

 

1 odpowiedź

+1 głos
odpowiedź 20 września 2016 przez Surykat Stary wyjadacz (14,780 p.)
Z tego co wiem, silnik bazodanowy najbardziej angażuje operacja join- w teorii, najpierw on łączy każdy rekord tabeli A, z każdym rekordem tabeli B, a potem z wyniku wywala te, które nie spełniają warunku złączenia- w praktyce tak się nie dzieje, bo silnik bazy danych jest sprytny i robi to trochę inaczej, ale jednak łączenie tabel, to sporo wysiłku- zatem, im więcej masz tabel, tym więcej złączeń musisz robić, co nie zawsze musi, ale może kończyć się sporym czasem zwrócenia wyników.

Dłubałem przy sporym systemie automatyzującym wysyłki (niestety tylko w ramach szkolenia) i tam adresy były zawarte w tabeli Customers, czyli analogicznie jak w twoim przykładzie- nie rozbijano tego na osobną tabelę Addresses. Tabela ta miała chyba ze 20-30 atrybutów, bo była tam cała masa innych informacji (nie będących kluczami obcymi), więc albo system był do bani, albo coś jest na rzeczy. :)

Musisz też zadać sobie pytanie, których danych będziesz używać bardzo często, a których jedynie raz za czas- generalnie można chyba przyjąć, że poświęcając poziom spójności danych, zyskujesz na prędkości i odwrotnie- musisz zdecydować, co gdzie potrzebujesz.
komentarz 20 września 2016 przez Boshi VIP (100,240 p.)
po za samą strukturą są jeszcze metody optymalizacji, więc nie tylko sturktura tutaj ogrywa wazną rolę :)
komentarz 20 września 2016 przez Trucik Obywatel (1,130 p.)
CO to za czarodziejskie metody optymalizacji nie mające związku ze strukturą? Sorry za może i trywialne pytanie, ale nigdy sięz czymś takim nie zetknąłem.
komentarz 20 września 2016 przez Boshi VIP (100,240 p.)
ee, odpowiednie indexy, korzystanie z left joina zamiast inner, wybieranie tylko wymaganych pól itd

Podobne pytania

0 głosów
0 odpowiedzi 277 wizyt
pytanie zadane 5 stycznia 2017 w SQL, bazy danych przez thehespe Użytkownik (590 p.)
0 głosów
3 odpowiedzi 691 wizyt
pytanie zadane 30 lipca 2015 w PHP przez migacz100 Mądrala (5,410 p.)
0 głosów
2 odpowiedzi 584 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...