Problem z wydajnością - Strona 2
Strona 2 z 2 PierwszyPierwszy 12
Wyniki 11 do 15 z 15

Temat: Problem z wydajnością

  1. #11
    Senior moje awatar
    Dołączył
    08-01-2008
    Skąd
    Silesia
    Wpisy
    6 057
    Punkty
    188

    Domyślny

    To jeszcze napisz odpowiedź na pytanie @mjmartino.
    Webdeveloper do usług ;)

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #12
    Debiutant
    Dołączył
    02-12-2017
    Wpisy
    6
    Punkty
    2

    Domyślny

    Cytat Wysłane przez mjmartino Zobacz wiadomość
    Pytanie a jak doszedłeś że to ta tabela ? i akurat baza nie wyrabia
    Ponieważ po przełączeniu tabel na InnoDB odrazu widać było, że czas generowania strony wynosi dobre kilkanascie sekund, wiec zajrzalem do logow serwera i mysql zalogowal przykladowo nastepujace zapytanie jako long_query_time:

    Kod:
    SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,			c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
    			c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
    			c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version, CASE WHEN CHAR_LENGTH(c.alias) != 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END as slug
    FROM zfgey_categories as c
    LEFT JOIN  (SELECT cat.id as id FROM zfgey_categories AS cat JOIN zfgey_categories AS parent ON cat.lft BETWEEN parent.lft AND parent.rgt WHERE parent.extension = 'com_content' AND parent.published != 1 GROUP BY cat.id) AS badcats ON badcats.id = c.id
    LEFT JOIN zfgey_categories AS s ON (s.lft <= c.lft AND s.rgt >= c.rgt) OR (s.lft > c.lft AND s.rgt < c.rgt)
    WHERE (c.extension='com_content' OR c.extension='system') AND c.access IN (1,1,5) AND c.published = 1 AND badcats.id is null AND s.id=8
    GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
    			 c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
    			 c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
    			 c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version
    ORDER BY c.lft;
    wiec przelaczylem #__categories spowrotem na myisam i strona ponownie zaczela funkcjonowac jak nalezy

  4. #13
    Senior moje awatar
    Dołączył
    08-01-2008
    Skąd
    Silesia
    Wpisy
    6 057
    Punkty
    188

    Domyślny

    Zrób sobie tabelę, w której będziesz agregował dane z obu baz (przez jakieś api), pamiętaj o zoptymalizowaniu jej indeksów.
    Webdeveloper do usług ;)

  5. #14
    Wyjadacz terra awatar
    Dołączył
    26-05-2017
    Skąd
    Wrocław
    Wpisy
    920
    Punkty
    87

    Domyślny

    InnoDB z definicji potrzebuje więcej pamięci niż MyISAM, a żeby działało szybciej to trzeba przeprojektować, strukturę tabel i przepływ danych w niej zawartych. Zapytanie, które prezentujesz nie należy do najprostszych i czytelnych. Może warto do niego usiąść i je uprościć.

  6. #15
    Nowicjusz
    Dołączył
    08-12-2017
    Wpisy
    22
    Punkty
    3

    Domyślny

    Powyższe zapytanie SQL jest dość pamięciożerne.
    Póki co możesz odnaleźć miejsce gdzie jest generowane to zapytanie i wyrzucić kolumny po GROUP BY c.id.

    Dla J3.8.x plik libraries/src/Categories/Categories.php:
    Linia 294:
    Kod PHP:
                // Group by
                
    $query->group(
                    
    'c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time,
                 c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.language, c.level,
                 c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id,
                 c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version'
                
    ); 
    zmień na:
    Kod PHP:
                // Group by
                
    $query->group(
                    
    'c.id'
                
    ); 
    Ten prosty zabieg powinien wystarczyć na początek.

Strona 2 z 2 PierwszyPierwszy 12

Podobne tematy

  1. Problemy z wydajnością
    przez johncage na forum Wydajność, optymalizacja
    Odpowiedzi: 0
    Ostatni post/autor: 20-05-2011, 21:34
  2. Problem z wydajnością joomli + virtuemart
    przez woonski na forum Wydajność, optymalizacja
    Odpowiedzi: 2
    Ostatni post/autor: 29-11-2010, 23:25
  3. Wydajnośc - optymalizacja - szybkość ładowania
    przez mboy na forum Administracja Joomla!
    Odpowiedzi: 12
    Ostatni post/autor: 17-09-2008, 02:48
  4. Wydajność joomli a mambo
    przez greg606 na forum Wydajność, optymalizacja
    Odpowiedzi: 8
    Ostatni post/autor: 31-07-2008, 13:59
  5. Search Engine Friendly a wydajność?
    przez mops na forum Administracja Joomla!
    Odpowiedzi: 2
    Ostatni post/autor: 10-12-2006, 22:36

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •