Дикая нагрузка DLE база

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

bigboss

Участник
Регистрация
21 Авг 2008
Сообщения
161
Реакции
7
Движок на ДЛЕ
Последняя версия
База на 1 гиг
Процесс mysql нагружен на 200-500%
В логах видно что повторяется:
94 | *** | localhost | *** | Query | 1157 | Copying to tmp table | SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.t |

как решить проблему?
 
  • Заблокирован
  • #2
следует включить отслеживание долгих запросов в конфиге мускуля, так же показать сам конфиг.
Ну и огласить посещаемость и количество просмотренных страниц.

Если у вас обычный хост, то стучите в саппорт, пусть выдаст данные
 
CHAR_LENGTH затратная операция, а на большой базе - мега затратная.
Удалите эту строку из запроса, если возможно или замените на поле p.full_story_LENGTH - его надо будет добавить в вашу табличку и заполнять при апдейте таблицы "p"
 
Последнее редактирование:
а можно команду для mysql для удаления или замены? а то в мускуле не силен
 
у вас в логие видно часть запроса:
SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.t

нужно убрать часть ", CHAR_LENGTH(p.full_story) as full_story" из запроса
и заменить на новое поле ",p.full_story_LENGTH"

которое нужно создать в таблице через phpmyadmin либо другие менеджеры либо через запрос alter table
и обновлять при изменении записи в таблице при сохранении поля full_story

как то так, если скрипт не свой и в программировани не очень, думаю будет сложновато..
 
CHAR_LENGTH затратная опеация на большой базе - мега затратная.
Удалите эту строку из запроса, если возможно или замените на поле p.full_story_LENGTH - его надо будет добавить в вашу табличку и заполнять при апдейте таблицы "p"
Полностью согласен, хотел только добавить, что для заполнения подобный полей грамотнее триггеры использовать. Значение p.full_story можно же через phpmyadmin руками изменить (например, это сделает ваш коллега в то время, пока вы будете в отпуске абсолютно не подозревая о ваших "маневрах") и все... информация уже биться не будет. С триггером такая штука не пройдет.
 
Полностью согласен, хотел только добавить, что для заполнения подобный полей грамотнее триггеры использовать.
Подход грамотный, правильный и, возможно, более легкий чем изучение апи cms, но если человек задаёт такие вопросы как ТС, то триггер я ему не посоветую минимум по 4м причинам:
- он не сможет его написать;
- не сможет добавить, если у него обычный хостинг без прав на создание процедур для таблиц;
- при переезде между хостингами процедуры очень часто забывают на старом;
- не все автоматические бекаперы их бекапят.

В разных темах этого форума можно найти все эти ошибки и еще кучку...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху