Несколько тяжелых mysql UPDATE

12
SEO-MAN
На сайте с 25.06.2007
Offline
187
2199

В общем нужно выполнить порядка 20-30 mysql UPDATE в большой базе в 1 php файле, мусор там почистить в постах, в и все запросы типа

$sql = mysql_query("UPDATE post SET pagetext = REPLACE(pagetext,'мусор','')");

прсто убивают сервак.

всё что приходит в голову, это между запросами sleep(5); к примеру ставить. но не помогает...

UPDATE LOW_PRIORITY - тоже не помогает.

Форум сео (http://forum-seo.net) для новичков автоматическая регистрация в 30000 каталогах за 5$ (/ru/forum/157861) Нужна доработка 2 досок объявлений - avtopmr.net, pmrdom.com (вип объявления и удаление дублей)
ДП
На сайте с 23.11.2009
Offline
203
#1

А если LIMIT в запросах задействовать?

LEOnidUKG
На сайте с 25.11.2006
Online
1774
#2

А вы как хотели? :)

Есть выход:

1. Импортировать базу, руками в блокнотике почистить и залить обратно

2. Через PHP скрипт искать и заменять мусор. SELECT и UPDATE по id будет в разы быстрее.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
SX
На сайте с 15.07.2008
Offline
79
#3

работайте с БД через PHPMyAdmin....

SELECT по 'мусор'-у пробовали делать, сколько строк? сколько всего?

пробовали "UPDATE `post` SET `pagetext` = REPLACE(`pagetext`,'мусор','') WHERE LOCATE('мусор', `pagetext`);" ? можно с лимитами, попробовать...

если непоможет пишите в ЛС, будем дальше копать ))

T
На сайте с 11.08.2005
Offline
181
#4

А почему бы просто не добавить временное поле - маркер, который будет означать, что запись обработана и запускать обработку, например, по 1000 записей за раз....

Скрипт обработчика можно запускать ежесекундно банальным джаваскриптом... либо селф перезагрузка по завершению...

таким образом можна обрабатывать и очень большие таб.

LEOnidUKG
На сайте с 25.11.2006
Online
1774
#5

SpaceX, не поможет т.к. это всё запросы БЕЗ кэша, а это значит при нагруженном серваке он будет заниматься только этим, что и просиходит у ТС и всё "вешается"

Timen, проще на PHP написать скрипт, чем эту фигню городить. Изменять структуру БД это последнее занятие т.к. чёрт его знает как там запросы были написаны.

SX
На сайте с 15.07.2008
Offline
79
#6

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

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

у многих вебмастеров простаивают весьма нехилые игровые компьютеры.

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

Кнопка вызова админа ()
sabotage
На сайте с 14.02.2007
Offline
192
#8
netwind:
выкачиваете всю базу, импортируете, делаете изменения и закачиваете назад.

+1. Или лимитами, скрипт пишется за минуту.

J
На сайте с 08.06.2006
Offline
844
#9

SEO-MAN, попробуйте на pagetext индекс дать

---------- Добавлено 10.02.2012 в 11:19 ----------

а лучше конечно выбирать и строковыми пхпешки чистить и апдейтить по индексу обратно

[umka]
На сайте с 25.05.2008
Offline
456
#10

Индекс как раз лучше удалить, а после апдейтов опять поставить (если он был).

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

Лог в помощь!
12

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