![]() |
![]() ![]() |
![]() |
![]() ![]()
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? -------------------- |
|
|
![]()
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. |
|
|
![]()
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:) -------------------- |
|
|
![]()
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.
-------------------- |
|
|
![]()
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..."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 19:31 |