![]() |
![]() |
![]()
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 ? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 14:44 |