![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 27.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Opiszę problem: tabela: produkt produkt2sklep (8mln) sklep (40tys) (posiada pole id_sieci) siec (200) Gdy chcę pobrać produkty należące do danej sieci, robie (w uproszczeniu): product JOIN produkt2sklep JOIN sklep JOIN siec (poniewaz sklep jest przypisany do sieci, a produkt do sklepu poprzez tabele produkt2sklep). Poniewaz w ostatnim czasie bardzo rozrosła sie tabela produkt2sklep czas zapytan wzrósł do kilku sekund, a to stanowczo za duzo. Dodam, że używam indexów tam, gdzie potrzeba. ROZWIAZANIE? Czy dodac tabele product2siec, ktora bylaby uzywana tylko do tego zapytania? Chyba najwiekszym minusem tego rozwiazania jest utrata integralności, bo wtedy produkt jest przypisany do sieci poprzez bezposrednie polaczenie nową tabela, oraz przez stare polaczenie poprzez tabele sklep. Plusem natomiast jest to, ze biorac pod uwage ilosci wierszy w tabeli siec i produkt2sklep rozwiazanie to (wg mnie) znacznie skrociloby czas wykonywania zapytania. Dla dbania o integralnosc pomyslalem, ze mozna codziennie uruchamiac skrypt, ktory bedzie aktualizowal tabele produkt2siec, zeby zawarte w niej dane byly zawsze zgodne z reszta bazy. Co o tym myslicie? Może macie inne pomysły na rozwiazanie tego problemu? Ten post edytował madar 15.07.2011, 11:27:54 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 22:56 |