ile kolumn w tabeli
dgront - 17-01-2007 00:05
ile kolumn w tabeli
Witam!
Mam tabele z duza liczba kolumn (kilkadziesiat). Czy oplaca sie podzielic ja na kilka tabel z mniejsza liczba kolumn? Wykonywane operacje to SELECT, INSERT nie ma znaczenia.
Czy jest jakas krytyczna liczba kolumn w tabeli, gdy przestaje sie to oplacac i nalezy robic kilka tabel z relacjami 1:1? Moj system to PostgreSQL.
Z gory dziekuje, Dominik
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 17-01-2007 00:05
Dnia 16 Jan 2007 03:22:21 -0800, "dgront" <dgront@chem.uw.edu.pl> wklepał(-a):
>Witam! > >Mam tabele z duza liczba kolumn (kilkadziesiat). Czy oplaca sie >podzielic ja na kilka tabel z mniejsza liczba kolumn? Wykonywane >operacje to SELECT, INSERT nie ma znaczenia.
Tabel nie dzieli się wg liczby kolumn, tylko wg merytorycznego ich znaczenia. Zakładam, że wiesz coś o teorii relacyjnych baz danych i o tym, jak się właściwie tworzy tabele i skąd się biorą kolumny.
Poza tym złączenia tabel są kosztowniejsze niż sięganie do innej kolumny tej samej tabeli - przede wszystkim dlatego, że z dużym prawdopodobieństwem kolejna kolumna jest w tym samym bloku na dysku, a kolumna z innej tabeli może być zupełnie gdzie indziej. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
hubert depesz lubaczewski - 17-01-2007 00:05
On 2007-01-16, dgront <dgront@chem.uw.edu.pl> wrote: > Mam tabele z duza liczba kolumn (kilkadziesiat). Czy oplaca sie > podzielic ja na kilka tabel z mniejsza liczba kolumn? Wykonywane > operacje to SELECT, INSERT nie ma znaczenia.
raczej nie opłaca się dzielić. ale - po co ci tyle kolumn?
depesz
-- http://www.depesz.com/ - blog dla ciebie
patryk.manterys@gmail.com - 18-01-2007 00:01
hubert depesz lubaczewski napisał(a): > > raczej nie opłaca się dzielić. > ale - po co ci tyle kolumn? > Jestes pewien ze sie nie oplaca dzielic? Wszystko zalezy od tego do jakich pol w tabeli sie odnosza zapytania. I czy np ta duza tabela bierze udzial w JOINach z innymi tabelami? Jesli tak to wydaje mi sie ze jednak lepiej podzielic ja na mniejsze. I to tak by w jednej tabeli znalazly sie dane czesciej uzywane a w odpowiednio w nastepnej (nastepnych) rzadziej. Oczywiscie zmusza nas to do tworzenia dodatkowego klucza do powiazania rozdzielonej tabeli. Wszystko wiec zalezy od sytuacji.
Proponuje wiec, jesli kolega chce rozwiazac ten problem, by opisal dokladniej swoj przypadek.
hubert depesz lubaczewski - 18-01-2007 00:01
On 2007-01-17, patryk.manterys@gmail.com <patryk.manterys@gmail.com> wrote: >> raczej nie opłaca się dzielić. >> ale - po co ci tyle kolumn? > Jestes pewien ze sie nie oplaca dzielic? Wszystko zalezy od tego do
której części "raczej" nie zrozumiałeś?
depesz
-- http://www.depesz.com/ - blog dla ciebie
Herakles - 18-01-2007 00:01
hubert depesz lubaczewski wrote:
> On 2007-01-16, dgront <dgront@chem.uw.edu.pl> wrote: >> Mam tabele z duza liczba kolumn (kilkadziesiat). Czy oplaca sie >> podzielic ja na kilka tabel z mniejsza liczba kolumn? Wykonywane >> operacje to SELECT, INSERT nie ma znaczenia. > > raczej nie opłaca się dzielić. > ale - po co ci tyle kolumn? > > depesz > Raczej nie to prawda, ale są przypadki, że się opłaca, oto jeden z nich: masz dwie tabele, które mają trigery które to wywalają ich joina do innej tabeli i teraz: Do jednej tabeli uprawnienia ma user A, a do drugiej user B.
Przypadki można by mnożyć, oczywiście zależy wszystko od tego jak bardzo może ta tabelka "spuchnąć", bo jak bardzo, to lepiej trzymać wszystko w jednej, a juserowi A i B zrobić odpowiednie funkcje.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
[MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?=
Tworzenie tabeli z =?ISO-8859-2?Q?nazw=B1_ustalan=B1_przez_?==?ISO-8859-2?Q?usera?=
=?ISO-8859-2?Q?Zawarto=B6=E6_tabeli_na_podstawie_warto=B6?==? ISO-8859-2?Q?ci_w_innej?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
[MySQL] Skopiowanie =?ISO-8859-2?Q?warto=B6ci_z_jednego_po?==?ISO-8859-2?Q?la_do_drugiego_w_jednej_tabeli=2C_r=F3=BFne_?= =?ISO-8859-2?Q?wiersze=2E?=
=?iso-8859-2?Q?=5BSQL_Server_2000=5D_uprawnienienia_do_u=BFyw ania_widoku_?==?iso-8859-2?Q?opartego_na_tabeli_z_innej_bazy?=
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
Liczba =?ISO-8859-2?Q?odpowiadaj=B1cych_rekord=F3w_z_drugi?==?ISO-8859-2?Q?ej_tabeli?=
zanotowane.pldoc.pisz.plpdf.pisz.pladwokat.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|