Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> jaka tabela jest wydajniejsza?
Bojakki
post 31.12.2005, 17:32:07
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Tworze baze danych i chialem sie zapytac czy w przypadku tabel w ktorych bedzie docelowo ok. 40-50 tys rekordow lepiej wszystkie mozliwe kolumny trzymac w jednej tabeli czy np. rozbic dane na 2 albo 3 tabele? Inaczej mowiac, czy lepiej jest zrobic 1 tabele z 20 kolumnami opisujacymi obiekt czy 2 tabele po 10 kolumn opisujacych obiekt?
Ktora metoda jest bardziej efektywna/szybsza dla tak duzych baz?


--------------------
Go to the top of the page
+Quote Post
mike
post 31.12.2005, 17:35:54
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


No ale to w bardzo dużej mierze zależy od tego co będziesz przechowywał w tych tabelach.
I od tego jak bedziesz pytał o te dane.

Równie dobrze może być oddzielnie i razem.

Podaj więcej informacji.
Go to the top of the page
+Quote Post
Bojakki
post 31.12.2005, 17:47:16
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

Ostrzeżenie: (0%)
-----


Operacje na tabelach w glownej mierze to wywolanie danego rekordu 1 zapytaniem, a poznej wyswietlanie miedzy htmlem poszczegolnych wartosci roznych kolumn tego rekordu.
W kolumnach sa rozne typy danych int, double, varchar, text. czasem na intach sa robione operacje dzielenia, dodawania, mnozenia (zanim wartosci tych pol zostana wyswietlone w ostatecznej formie).
Jedynie kolumna bedzie updateowana bardzo czesto, tj. licznik wejsc na dany obiekt, pozostale kolumny raczej rzadko aktualizowane.
Bardziej zaawansowane SELECTy planuje cacheowac.
Wyszukiwarka bazuje na przeszukiwaniu pierwszych 6 z 22 kolumn.
Tak to wyglada z grubsza, jak cos jeszcze jest istotnego by to ocenic to pisz:)


--------------------
Go to the top of the page
+Quote Post
SongoQ
post 1.01.2006, 10:52:32
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Jesli beda czeste update roznych tabel to musisz sie wtedy zastanowic jak sprawe rozwiazac z indeksami, bo wtedy kazda zmiana odbudowuje indeksy itd. Wazna sprawa jest wielkosc bazy w rekordach, czy to sa setki, tysiace, miliony...... Kolejna sprawa jest dostrajanie zapytan, testy na ilosci rekordow ktore Twoja bazka teoretycznie nie powinna osiagnac.


--------------------
Go to the top of the page
+Quote Post
DeyV
post 2.01.2006, 13:08:14
Post #5





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




A ja mam wrażenie, że mówimy tu nie o tym, co trzeba.

Nie ważne jest to, jakie kolumny tabela zawiera.
Ważne jest to, jakie informacje w niej mają być przechowywane.

Dlaczego?
Ponieważ jeśli wiersz takiej tabeli, mającej nawet setki pól, zawiera jedną spójną informację, np. opis 1 produktu, informacje o 1 userze itp, i przy pytaniu o te informacje będziemy zazwyczaj pobierać wszystkie te informacje, w oparciu o klucz główny, to OCZYWIŚCIE ma to być 1 tabela.

Jeśli jednak byłyby to informacje różnego typu, np. dane firmy, dane adresowe, itp, które nie spełniałyby warunków normalizacji, wtedy należy to dzielić, tak długo, aż spełniony zostanie warunek pierwszy.

A 40 - 50 tys rekodów to wcale nie jest duża baza, szczególnie jeśli są poprawnie utworzone indexy.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 19:31