powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кто поможет оптимизировать запросы к БД от instantcms
8 сообщений из 8, страница 1 из 1
Кто поможет оптимизировать запросы к БД от instantcms
    #39918350
AlexProfit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на сервере больше всего нагрузки создаётся процессом mysql. В нём висит два очень долгих процесса.

| 152 | dizuser | localhost | diz | Query | 34 | Copying to tmp table |
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT c.*,
IFNULL(u.nickname, 0) as nickname,
IFNULL(u.login, 0) as login,
IFNULL(u.is_deleted, 0) as is_deleted,
IFNULL(p.imageurl, 0) as imageurl,
IFNULL(p.gender, 0) as gender
FROM cms_comments c
LEFT JOIN cms_users u ON u.id = c.user_id
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE c.published = 1
AND (c.target IN ('mapnews','mapitem','blog','article','palbum','photo','userphoto'))
AND (c.is_hidden=0)
ORDER BY c.pubdate DESC
LIMIT 0, 6

|

Сайт сейчас открылся, спустя 2 минуты

Кто сможет настроить запросы, чтобы сервер не вис?
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918353
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexProfit,

Показывайте план запроса и DDL всех таблиц, участвующих в запросе.
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918361
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если оставить только запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT c.*,
       IFNULL(u.nickname, 0) as nickname,
       IFNULL(u.login, 0) as login,
       IFNULL(u.is_deleted, 0) as is_deleted,
       IFNULL(p.imageurl, 0) as imageurl,
       IFNULL(p.gender, 0) as gender
FROM cms_comments c
LEFT JOIN cms_users u ON u.id = c.user_id
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE c.published = 1
  AND (c.target IN ('mapnews','mapitem','blog','article','palbum','photo','userphoto'))
  AND (c.is_hidden=0)
ORDER BY c.pubdate DESC
LIMIT 0, 6


то для начала хочется спросить - а что, вот реально есть каменты без юзера? типа ветром надуло? ну и аналогично - а что, есть юзеры без профиля, сплошной анфас?

Что же до оптимизации:
1) Сразу - ограничьте выборку вменяемым диапазоном c.pubdate
2) Показывайте DDL всех участвующих таблиц, полностью, и дайте статистику по наполнению, включая селективность условий связывания.
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918365
AlexProfit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то для начала хочется спросить - а что, вот реально есть каменты без юзера? типа ветром надуло? ну и аналогично - а что, есть юзеры без профиля, сплошной анфас?

Регистрируются боты, но в админке висят как не активированные и наверно коментят))...
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918369
AlexProfit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina


Что же до оптимизации:
1) Сразу - ограничьте выборку вменяемым диапазоном c.pubdate
2) Показывайте DDL всех участвующих таблиц, полностью, и дайте статистику по наполнению, включая селективность условий связывания.


Я в БД профан... поэтому и обратился за помощью...

(ограничьте выборку вменяемым диапазоном c.pubdate) - как и где это сделать?
( Показывайте DDL всех участвующих таблиц, полностью, и дайте статистику по наполнению, включая селективность условий связывания) - как это сделать?
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918370
AlexProfit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft


Показывайте план запроса и DDL всех таблиц, участвующих в запросе.


А как это сделать?
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918395
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexProfit
(ограничьте выборку вменяемым диапазоном c.pubdate) - как и где это сделать?

Ну отберите их во WHERE, скажем, за последний день... или неделю. Всё серверу будет легче сортировать.
AlexProfit
( Показывайте DDL всех участвующих таблиц, полностью, и дайте статистику по наполнению, включая селективность условий связывания) - как это сделать?

Как минимум по каждой таблице дайте результат выполнения SHOW CREATE TABLE tablename , а также количество записей.
...
Рейтинг: 0 / 0
Кто поможет оптимизировать запросы к БД от instantcms
    #39918403
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexProfit
miksoft


Показывайте план запроса и DDL всех таблиц, участвующих в запросе.


А как это сделать?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
EXPLAIN EXTENDED
SELECT c.*,
       IFNULL(u.nickname, 0) as nickname,
       IFNULL(u.login, 0) as login,
       IFNULL(u.is_deleted, 0) as is_deleted,
       IFNULL(p.imageurl, 0) as imageurl,
       IFNULL(p.gender, 0) as gender
FROM cms_comments c
LEFT JOIN cms_users u ON u.id = c.user_id
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE c.published = 1
  AND (c.target IN ('mapnews','mapitem','blog','article','palbum','photo','userphoto'))
  AND (c.is_hidden=0)
ORDER BY c.pubdate DESC
LIMIT 0, 6
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Кто поможет оптимизировать запросы к БД от instantcms
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]