Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]pytanie o strukture - 1 tablica czy 2
Forum PHP.pl > Forum > Przedszkole
ChrisB
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.
ActivePlayer
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.
ChrisB
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 smile.gif

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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.