SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.04.2012 12:47:45

gizzo
Участник
Зарегистрирован: 07.04.2012
Сообщений: 2

HELP - ошибка запроса в MySQL

Здравствуйте,
Пришло вчера письмо от хостера по поводу чрезмерно долгого запроса в базу данных, со ссылкой на это:

__________________________________________
В вашем аккаунте зафиксировано превышение квоты на загрузку сервера баз данных.
База данных, превышающая квоту:  gb_blokhin

Параметры запроса, вызывающего проблему:
(приводятся параметры одного из запросов)

Время исполнения, секунд   - 461
Кол-во просмотренных строк - 7238
Запрос:
-------
use gb_blokhin;
SET timestamp=1333628505;
SELECT s.id,s.iid,s.min,s.max,s.count,s.type,p.status FROM 2ATD33DAtR_gizzo_sizes AS s LEFT JOIN 2ATD33DAtR_gizzo_shop AS p ON (s.iid=p.id) ORDER BY s.min ASC;
-------

ВАЖНО: ключевой параметр - количество просмотренных строк, а не время исполнения запроса (время роли не играет).

Загрузка сервера баз данных, вызываемая вашим сайтом, превышает нормы, допустимые для виртуального хостинга.
Работа базы данных в этом режиме нарушает предсказуемость работы сервера, мешает другим пользователям сервера.

Вам необходимо модифицировать скрипты, отказаться от выполнения запросов, аналогичных предыдущему, либо оптимизировать структуру таблиц или запрос.


Если вы хотите продолжать пользоваться нашими услугами,
вам необходимо в короткий срок решить проблему.
Ваш аккаунт или БД может быть заблокированы, так как
подобная нагрузка может вызывать перегрузку сервера баз данных
и отказ в обслуживании для других клиентов.
______________________________________________

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

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

Сделал запрос в базу на поиск всех "0" - выделил их и удалил.

Всё бы ничего, если бы сегодня не обнаружил на сайте вызванный вчерашней чисткой глюк, а именно
Раньше, если размеры у модели заканчивались, то модель уходись с сайта и не демонстрировалась на показ, status=0, а теперь о ужас - все ранее деактивированное - высыпалось на сайт со значением status=1.

Так как не силен в запросах в базу данных, прошу подсказать, как выполнить массовый запрос, чтобы по нескольким позициям подряд прописать статус=0, пробовал, что-то вроде этого:
ALTER TABLE `2ATD33DAtR_gizzo_shop` WHERE id IN (7551, 5182, 7784, 9953, 4987) status=0

Выдает ошибку ссылаясь на синтаксис - подскажите, HELP, как правильно выполнить запрос в базу данных.
Заранее спасибо!


Прикрепленные файлы:
Attachment Icon bd-status[1].jpg, Размер: 186,752 байт, Скачано: 257

Неактивен

 

#2 07.04.2012 12:50:29

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: HELP - ошибка запроса в MySQL

Вы наверное что-то такое имели в виду?
UPDATE `2ATD33DAtR_gizzo_shop` SET status = 0 WHERE id IN (7551, 5182, 7784, 9953, 4987);
Оператор alter table используется для изменения структуры таблицы, а не для изменения данных в ней.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 07.04.2012 12:54:34

gizzo
Участник
Зарегистрирован: 07.04.2012
Сообщений: 2

Re: HELP - ошибка запроса в MySQL

Большое спасибо "deadka" - всё заработало - вы очень меня выручили - приятно общаться с профессионалами!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson