log-slow-queries
log-slow-queries
#1
Napisany 14 luty 2008 - 21:07
Raz na jakiś czas 'przycina' mi się trochę serwerem mysql. Przylogowałem slow queries i jedyne jakie pojawiają się to :
# Query_time: 15 Lock_time: 0 Rows_sent: 10 Rows_examined: 122307
SELECT f.*, AVG(l.value) AS vote_value, COUNT(l.value) AS vote_count FROM jos_downloads_files AS f LEFT JOIN jos_downloads_log AS l ON l.type=3 AND l.fileid=f.id WHERE f.containerid = 2 AND f.published=1 GROUP BY f.id ORDER BY filetitle LIMIT 690,10;
serwis oparty na joomli,
wnosząc po Rows_examined: 122307 , sądzę, że jest to jeden z moich problemów. Niestety nie znam się na wszystkim i dlatego chciałbym prosić o sugestie co zrobić z tym fantem.
M
#2
Napisany 14 luty 2008 - 22:22
Ale oczywiście przeglądałeś już forum.joomla.pl
Infolinia: +48 12 350 20 01 ..::Autorskie rozwiązania IT | Serwery w Niemczech oraz Polsce
#3
Napisany 14 luty 2008 - 23:17
Adrian Szczepanik, o 14.02.2008, 22:22, powiedział:
W sumie czy samo zapytanie nie jest pokręcone ?
zrobiłem :
mysql> describe (SELECT f.*, AVG(l.value) AS vote_value, COUNT(l.value) AS vote_count FROM jos_downloads_files AS f LEFT JOIN jos_downloads_log AS l ON l.type=3 AND l.fileid=f.id WHERE f.containerid = 2 AND f.published=1 GROUP BY f.id ORDER BY filetitle LIMIT 690,10);
+----+-------------+-------+-------+-------------------------------------------+-------------+---------+-------+------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+-------------------------------------------+-------------+---------+-------+------+----------------------------------------------+
| 1 | SIMPLE | f | ref | containerid,recommended,featured,opsystem | recommended | 2 | const | 599 | Using where; Using temporary; Using filesort |
| 1 | SIMPLE | l | range | userid,fileid,ipaddress | fileid | 1 | NULL | 98 | Using where |
+----+-------------+-------+-------+-------------------------------------------+-------------+---------+-------+------+----------------------------------------------+
2 rows in set (0.00 sec)
Czy z tego można coś wywnioskowac ? Czy powinienem stworzyć jakies nowe indeksy ? czy może rozpatrywać uszkodzenie istniejących ?
Jak robię : mysqlcheck -o , to
przelatuje tabele, przy większości pisze "Table is already up to date" a m.in. przy tych z zapytania podaje "OK" - czy to sugeruje, że coś z nimi robi ? optymalizuje ? poprawia indeksy ?
Pytam o tyle, bo nie znam się wogóle na mysqlu - douczam się googlując.
Adrian Szczepanik, o 14.02.2008, 22:22, powiedział:
to forum jakoś biednie mi wygląda, raczej szukam odpowiedzi googlując.
M
#4
Napisany 16 kwiecień 2008 - 18:12
# Time: 080414 20:37:51
# User@Host: lxxxxxx] @ localhost []
# Query_time: 237 Lock_time: 0 Rows_sent: 0 Rows_examined: 0
UPDATE enjoy SET wyswietlen = wyswietlen+1 WHERE id = '2289';
# Time: 080414 22:56:09
# User@Host: lxxxxxx] @ localhost []
# Query_time: 5 Lock_time: 0 Rows_sent: 0 Rows_examined: 0
UPDATE enjoy SET wyswietlen = wyswietlen+1 WHERE id = '3650';
wie ktos czemu tak sie dzieje?
#5
Napisany 16 kwiecień 2008 - 18:15
@bob3k, w twoim przypadku wyglada na to, ze zapytanie samo nie wie czego szuka ;-) domniemam ze jest to wina '+1' jednak nie jestem specjalista do spraw optymalizacji samych baz.
#6
Napisany 16 kwiecień 2008 - 18:31
#7
Napisany 16 kwiecień 2008 - 18:37
#8
Napisany 16 kwiecień 2008 - 19:06
#9
Napisany 16 kwiecień 2008 - 19:07
Rows_examined: 0
jest jednoznaczne
1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych użytkowników













