![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 31 Dołączył: 23.02.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy że mamy aplikację z której korzysta 1000 użytkowników i każdy użytkownik posiada 5000 zapisanych w bazie danych wiadomości tekstowych(dajmy na to 10-20 kb każda). Użytkownicy dość często korzystają z przeszukiwania swoich wiadomości wg określonych kryteriów. Użytkownicy mają dostęp tylko i wyłącznie do swoich wiadomości.
W tym momencie nasuwa się pytanie. Czy wydajniejszym rozwiązaniem jest utworzenie jednej tabeli ze wszystkimi rekordami? Czy może dużo lepszy rozwiązaniem jest utworzenie osobnej tabli dla każdego użytkownika? Przykładowe zapytanie dla jednej tabeli:
Przykładowe zapytanie dla osobnej tabeli dla każdego użytkownika:
Które rozwiązanie wg was jest lepsze. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Jedno i drugie ma swoje plusy i minusy:)
-------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Czy wydajniejszym rozwiązaniem jest utworzenie jednej tabeli ze wszystkimi rekordami? Czy może dużo lepszy rozwiązaniem jest utworzenie osobnej tabli dla każdego użytkownika? I tak MySQL, przy pewnych przeszukiwaniach, sam tworzy osobne tabele tymczasowe. Więc z projektowego punktu widzenia, tworzenie dla każdego z nich osobnej tabeli jest bez sensu. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 31 Dołączył: 23.02.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
A inne systemy bazodanowe? PostgreSQL, MSSQL itp.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 1 Dołączył: 12.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
jeśli używasz MyIsam i będzie zalogowanych jednocześnie wielu userów to oddzielne tabele mogą być bardziej wydajne.
Natomiast przy InnoDB to raczej nie ma znaczenia i użyłbym jednej tabeli. przynajmniej tak mi się wydaje. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 7.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja, jestem za jedną tabelą, przy wielu byłby problem z tym, że już mieszamy projekt tabeli z jej danymi, nie można zrobić tak, by struktura danych (ilosć tabel) był zależny od zawartości tych danych (ilości userów), to zmieniałoby za każdym razem ilosć tabel, utrudnienie w konserwacji.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 13.03.2009 Skąd: lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:48 |