Процесс начал сильно грузить хостинг

Статус
В этой теме нельзя размещать новые ответы.

darmoid

Киллер
Регистрация
9 Мар 2007
Сообщения
397
Реакции
126
Вот что грузит
SELECT DATE_FORMAT(date,'S') AS m_date, COUNT(*) AS cnt FROM dle_post WHERE approve AND date < 'S' GROUP BY m_date ORDER BY date desc

Помогите разобраться в чем проблема :thenks:

Вот ответ саппорта
К сожалению это Вам может сказать только разработчик скрипта.
Мы же вам стараемся помочь в рамках наших полномочий.
Так же Вам желательно сделать общую оптимизацию аккаунта.
1. Просмотреть логи доступа (в панели управления) на предмет возможной причины.
Логи находятся Управление услугами/Выбираете домен/Лог доступа .
2. Настроить файл robots.txt Т.е. ограничить работу поисковиков. Например, что бы боты не индексировали картинки, админ панель и т.д., т.к. эти элементы не нужны для индексации.).
3. Отключить не критические модули скрипта.
4. Обновить скрипт.
5. Посмотрите и активируйте в админ панели все функции оптимизации, если они конечно есть. Например, Включите функцию кэширования, если это предусмотрено в настройках скрипта.
Кэширование существенно сокращает нагрузку на сервер, сводя количество запросов к минимуму.
6. Попытаться узнать на форуме поддержки скрипта о возможных причинах подобной нагрузки.
7. Проверьте если у вас стоит крон, время его поставьте почти под утро, а частоту можете сделать меньше. Т.е. частоту запуска скрипта.
8. Удалить все лишние скрипты.
9. Так же причина нагрузки может быть sql-запросы к базе движков \ скриптов, особенно выборка по SELECT, если БД не маленькая
Наиболее частых причин нагрузок - две:
а) индексация поисковыми роботами;
б) sql-запросы к базе движков \ скриптов, особенно выборка по SELECT, если БД уже объемная.

С етого всего перепробовал практически все. Вес БД 48.67MB

Проблемы начались на ровном месте ничего с тем сайтом не делал. Двиг ДЛЕ 7.5
 
Сделай
EXPLAIN SELECT DATE_FORMAT(date,'S') AS m_date, COUNT(*) AS cnt FROM dle_post WHERE approve AND date < 'S' GROUP BY m_date ORDER BY date desc
и напиши здесь выдачу, вероятно не используются индексы
 
Во-первых индексы
Во-вторых явно указывай approve=1 или чему там
date < 'S' - что это значит?
 
Вес БД 48.67MB это мизер для бд... проблема скорей всего, что отсутствует в этой таблице автоинкрементное поле и каунт тормозит запрос ,приведите структуру этой таблицы...и очень странная выборка WHERE approve AND date < 'S' разве поле approve связано с временем? обычно поле типа approve делают tinyint(1) или ENUM...
 
Это не то...зайдите в phpMyAdmin --Экспорт-Просмотреть дамп таблицы---SQL--- и делайте дамп этой таблицы..типа...
PHP:
-- 
-- Структура таблицы `articles`
-- 

CREATE TABLE `articles` (
  `a_id` int(11) unsigned NOT NULL auto_increment,
  `a_cat` tinyint(4) unsigned default NULL,
  `a_title` varchar(255) default NULL,
 
сделал прикрепил скрин

Из скрина видно что индексы не используются и сервер постоянно сканирует всю таблицу целиком что вероятно создает нагрузку если число рядов велико.
Затем очень странное условие в where, a именно approve and date < 'S' вероятно предполагается что в approved либо 0 либо 1 но тем не менее лучше явно писать approved = '1' или approved = '0'.
В любом случае сделайте дамп структуры таблицы это поможет точнее сказать на какие столбцы добавить индексы.
 
Скажите как выставить индексы?
Таже проблема которую никак решить не могу
 
Может кто то рассказать как проставить индексы на конкретном примере , как вообще это делается?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху