mysql выборка

1 2345 6
[Удален]
#31

а такой запросец сколько выполняется? :)

EXPLAIN SELECT `u` . * , `s` . *
FROM
`forum_users` as `u`
INNER JOIN
(SELECT * FROM `forum_sessions` where `session_id` = '8d699e58183e97f2d06cb16dc9f6af93') `s`
on `s`.`session_user_id` = `u`.`user_id`

думаю что мало при условии что у вас session_id и user_id индексированные поля.

N
На сайте с 06.05.2007
Offline
419
#32

Miracle, это вы лог медленных запросов просматриваете? запрос простой. скорее всего, имела место блокировка записи на forum_users и приведенный запрос ждал ее завершения.

бекап например или какая-нибудь задача перерасчета званий.

То есть надо искать другой запрос.

Кнопка вызова админа ()
M
На сайте с 20.08.2004
Offline
376
#33

спасибо за ответы

Page generation time: 29,7049s (PHP: 1% - SQL: 99%) - SQL queries: 14 - GZIP disabled - Array
(
[0] => Array
(
[0] => SELECT u.*, s.*
FROM forum_sessions s, forum_users u
WHERE s.session_id = '8d699e58183e97f2d06cb16dc9f6af93'
AND u.user_id = s.session_user_id
[1] => 0,010000944137573
)

[1] => Array
(
[0] => UPDATE forum_sessions
SET session_time = 1256656161, session_page = 0
WHERE session_id = '8d699e58183e97f2d06cb16dc9f6af93'
[1] => 0,11630916595459
)

[2] => Array
(
[0] => UPDATE forum_users
SET user_session_time = 1256656161, user_session_page = 0
WHERE user_id = 4
[1] => 0,79897785186768
)

[3] => Array
(
[0] => DELETE FROM forum_sessions
WHERE session_time < 1256652562
AND session_id <> '8d699e58183e97f2d06cb16dc9f6af93'
[1] => 0,37880992889404
)

[4] => Array
(
[0] => SELECT *
FROM forum_themes
WHERE themes_id = 1
[1] => 0,12045478820801
)

[5] => Array
(
[0] => SELECT COUNT(post_id) as total
FROM forum_posts
WHERE post_time >= 1256581280
AND poster_id != 4
[1] => 0,53221106529236
)

[6] => Array
(
[0] => SELECT c.cat_id, c.cat_title, c.cat_order
FROM forum_categories c

ORDER BY c.cat_order
[1] => 0,0057001113891602
)

[7] => Array
(
[0] => SELECT t.forum_id, t.topic_id, p.post_time
FROM forum_topics t, forum_posts p
WHERE p.post_id = t.topic_last_post_id
AND p.post_time > 1256581280
AND t.topic_moved_id = 0
[1] => 24,293247938156
)

[8] => Array
(
[0] => SELECT a.forum_id, a.auth_view, a.auth_mod
FROM forum_auth_access a, forum_user_group ug
WHERE ug.user_id = 4
AND ug.user_pending = 0
AND a.group_id = ug.group_id

[1] => 0,045427083969116
)

[9] => Array
(
[0] => SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip
FROM forum_users u, forum_sessions s
WHERE u.user_id = s.session_user_id
AND s.session_time >= 1256655887

ORDER BY u.username ASC, s.session_ip ASC
[1] => 3,2141630649567
)

[10] => Array
(
[0] => SELECT r.cat_id, r.report_info
FROM forum_report r

WHERE report_status = 0
[1] => 0,0004429817199707
)

[11] => Array
(
[0] => SELECT word, replacement
FROM forum_words
[1] => 0,00016617774963379
)

[12] => Array
(
[0] => SELECT a.forum_id, a.auth_read
FROM forum_forums a

[1] => 8,2969665527344E-5
)

[13] => Array
(
[0] => SELECT a.forum_id, a.auth_read, a.auth_mod
FROM forum_auth_access a, forum_user_group ug
WHERE ug.user_id = 4
AND ug.user_pending = 0
AND a.group_id = ug.group_id

[1] => 0,0047140121459961
)

)
-->

не знаю, если бы было что то типа блокировки то все запросы бы тормозили, а так из середины списка

bearman:
думаю что мало при условии что у вас session_id и user_id индексированные поля
bearman:
думаю что мало при условии что у вас session_id и user_id индексированные поля.

мало что? тормозит мало?:)

Miracle добавил 27.10.2009 в 19:04

через .htaccess закрыл доступ к серверу

по top -o cpu его ничего не грузило

на открытии главной для одного меня уходило 0.7 секунд максимум

вот запросы интересные со временем

[0] => UPDATE forum_sessions
SET session_time = 1256658687, session_page = 64
WHERE session_id = '8d699e58183e97f2d06cb16dc9f6af93'
[1] => 0,18582701683044

[0] => UPDATE forum_topics
SET topic_views = topic_views + 1
WHERE topic_id = 22074
[1] => 0,15500211715698

с чем может быть такое связано?

неделю работает хорошо, неделю вот такие непонятки...

спс.

отец сыночка, лапочки дочки и еще одного сыночка
N
На сайте с 06.05.2007
Offline
419
#34
Miracle:
не знаю, если бы было что то типа блокировки то все запросы бы тормозили, а так из середины списка

Если блокировка наложена на несколько таблиц, то тормозят те запросы, которые используют эти таблицу, а не все.


[7] => Array
(
[0] => SELECT t.forum_id, t.topic_id, p.post_time
FROM forum_topics t, forum_posts p
WHERE p.post_id = t.topic_last_post_id
AND p.post_time > 1256581280
AND t.topic_moved_id = 0
[1] => 24,293247938156

почему вы решили что 24 секунды это фигня и вы решили искать проблему в forum_users ?

Нельзя оценивать узкое место на сайте просто по одной серии запросов на одной страниче. Там может параллельно выполняться много других и они влияют даже на простые запросы. А на VPS и того веселее бывает.

Так что в вашем случае подозрительный запрос нужно запускать вручную несколько раз, чтобы исключить влияние "помех".

M
На сайте с 20.08.2004
Offline
376
#35

я не считаю что 24 это фигня с чего вы взяли, потому я и пытаюсь понять в чем проблема.

Miracle:
через .htaccess закрыл доступ к серверу
по top -o cpu его ничего не грузило
на открытии главной для одного меня уходило 0.7 секунд максимум
вот запросы интересные со временем

и посмотрите время выполнения запросов.

N
На сайте с 06.05.2007
Offline
419
#36

Ну вот. Значит в первую очередь следует обратить внимание на запрос продолжительностью 24 секунды. А потом на общую обстановку на сервере.

Если это VDS - лучше не морочьте голову людям. В окружении VDS тормоза возникают сами по себе в любое время и не обязательно по вашей вине.

Теоретические вопросы по поводу sql еще могут показаться занятными.

N
На сайте с 16.02.2009
Offline
19
#37

Вам 2 человека подсказали юзать JOIN, при этом поля поиска и объединения должны быть проиндексированы.

N
На сайте с 06.05.2007
Offline
419
#38

там есть JOIN по смыслу, хотя в тексте запроса слова JOIN нет.

M
На сайте с 20.08.2004
Offline
376
#39

join не решит эту проблему :)

N
На сайте с 16.02.2009
Offline
19
#40

Почему же не решит? Приведите время выполнения запроса с использованием LEFT JOIN ;)

1 2345 6

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий