Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Pytanie obciążając serwer, jakiś pomysł na optymalizacje?
Spirit86
post
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.
Czy ktoś mi może odpowiedzieć na pytanie, czemu pytanie typu:

  1. SELECT COUNT(xn_comments.id ) AS `comments_num` , 'more'=IF(text2<>'',1,0) AS `more`, xn_news.id, xn_news.title, xn_news.date, xn_news.text, link, source, xn_news.cat, xn_news.username, xn_categories.title AS `cat_title`
  2. FROM xn_news, xn_categories, xn_comments WHERE xn_categories.id=xn_news.cat AND xn_comments.did = xn_news.id AND xn_comments.what = 'news' GROUP BY id ORDER BY date DESC LIMIT 2


generauje się aż 0.0145 s. ? Ponadto jeżeli komentarzy jest 0 to nie wyświetla rekordów? Gdy liczy mi komentarze wpisuje COUNT (xn_comments.id) wtedy otrzymuję informacje, że w przypadku COUNT, SUM, MAX, MIN trzeba użyć GROUP by.
Ech jak innaczej napisać to pytanie? sad.gif

Pozdrawiam


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
Synaps
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Jeśli w sekcji SELECT korzystasz z COUNT,SUM funkcji zliczających + dodatkowa kolumna np użytkownik, dzień tworzysz agregacje do któregoś z poziomów dlatego też wymagane jest stosowanie GROUP BY. Co do przyśpieszenia, to ja jestem zwolenikiem indeksów cool.gif . W twoim przykładzie, jeśli dobrze zrozumiałem idee to dodał bym na kolumnie xn_comments.what, z tego co widze to opisuje ona przynależność komenatrza do danego obiektu.


--------------------
MySQL said:

You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL
Go to the top of the page
+Quote Post
Spirit86
post
Post #3





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


w sumie nie wiele zmienia wstawienie indeksu, czasy są podobne.
tak, tylko jak daje group by i tu np. id wtedy wyświetlają mi się TYLKO rekordy, które mają jakieś komentarze

bez pytania odnoszącego się do comments

wykonywanie trwa
0.00086212158203125 - 0.0010139942169189
więc prawie 2 razy szybciej!

Ten post edytował Spirit86 14.11.2005, 09:49:08


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:17