![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 4 Dołączył: 13.01.2004 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
witam
mam aktualnie 2 tablice A-> 8pól głównie numerycznych - wszystkie "małe" z dużą ilością rekordów (w przyszłości milion+) B-> 2pola - 1 - link do tablicy A, oraz drugie pole - text - zawartość może zajmować do 1kb i teraz: NIE KAŻDY rekord z tablicy A ma swój rekord w tablicy B, ale KAŻDY rekord w tablicy B ma swój odpowiednik w tablicy A. pytanie brzmi, zostawić to rozdzielone na dwie tablice, czy może połączyć je razem, zostawiając około 50% rekordów tekstowych pustych. pytanie jest czysto wydajnościowe - które rozwiązanie będzie szybsze przy milionach rekordow w tablicy A i gdzies połowie mniej rekordów w tablicy B. -------------------- gragieldowa.pl
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
Połącz w jedną tabelę. Selectuj tylko to co potrzebujesz (nie rób select *). Skup się na indeksach. Zakładaj je tylko na najważniejszych polach bo bardzo wydłużają czas sortowania ewentualnego temp table. Dobierz dobrze typy kolumn:
tutaj masz ile zajmują miejsca: http://dev.mysql.com/doc/refman/5.0/en/sto...quirements.html a tutaj ile sie miesci w numericach http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html im mniej będzie zajmował pojedynczy rekord, tym szybciej bedzie wszystko działało. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 4 Dołączył: 13.01.2004 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
indeksy, select po polach - to już opanowałem, zmieniłem na jedną tablicę, ale jak mam być szczery to nie przekonałeś mnie do końca
![]() Cytat im mniej będzie zajmował pojedynczy rekord, tym szybciej bedzie wszystko działało. właśnie dlatego bo załóżmy, że tablica A będzie miała 1.000.000 rekordów bez pola text, natomiast tablica B 100.000-500.000 - ciężko mi teraz określić ile dokładniej ale nie więcej niż 50% niemalże napewno, no i - jeden rekord tekstowy z tablicy B będzie większy "objętościowo" dobre 5-10 razy niż jeden rekord z tablicy A - dlatego wg mnie (nie mam żadnych obliczeń by to poprzeć ani nawet nie wiem jak się za takowe zabrać bez czekania aż tablica urośnie) rozdzielenie dałoby przyrost wydajności. -------------------- gragieldowa.pl
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:32 |