![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 27.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
mam taka baze danych:
products - pola: id,active(enum),deleted(enum), + kilka innych pol ale akurat tu nie uzywanych products_contents - pola: pro_id(relacja do products.id),name(varchar(150), + kilka innych pol ale akurat tu nie uzywanych w tym content(text z fullsearch)) produktow jakies 200k i baza ciagle rosnie robie prostego joina explain select * from products join products_contents on pro_id = id where active ='1' and deleted = '0' Limit 10 wszystko super smiga az milo, w extra mam tylko: "using where) problem pojawia sie wylacznie przy sortowaniu czyli: explain select * from products join products_contents on pro_id = id where active ='1' and deleted = '0' order by name asc Limit 10 smiga troche gorzej no i tworzy mase tymczasowych tabel (probowalem juz zamieniac kolejnosciami products z products_contents i dziala to tylko wtedy gdy nie mam where dla products).. przez co admin mnie sie czepia, dodatkowo w extra mam: Using where; Using temporary; Using filesort ktos ma jakis pomysl jak to zoptymalizowac ? przychodza mi do glowy dwa rozwiazania ale kazde ma jakies tam wady: 1. polaczyc obie tabele w jedna 2. skopiowac kolumny active i deleted do products_contents i w tym jednym przypadku korzystac wylacznie z products_contents 3. przeniesc name do tabeli products - chyba najlepsze rozwiazanie 4. ktos z na jakies inne ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 27.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
nie, korzystam ze zwyklych tabel, widoki co prawda sa stworzone dla tych tabel ale sa uzywane zupelnie gdzie indziej
struktury niestety nie bardzo moge pokazac ;/ jeszcze zauwazylem pewna rzecz... jak dam samo where deleted ='0' to korzysta tylko z where (juz bez tymczasowych tabel) a jak dam samp active = '1' to korzysta ze wszystkiego czyli Using where; Using temporary; Using filesort dziwne, bo obie kolumny maja zalozone oddzielnie kazdy index + jeden index laczacy je dwie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 03:02 |