![]() |
![]() |
#11 |
Слесарь-сайтосборщик
Доцент
Регистрация: 22.06.2020
Адрес: Замкадье
Сообщений: 403
Сказал(а) спасибо: 985
Получил(а) "Спасибо": 1,178
Нарушения: 0/0 (0)
Репутация: 180645
|
![]()
Не надо BETWEEN. Попробуй так, как у меня написано.
Код:
UPDATE table_name SET field_name=REGEXP_REPLACE(field_name, '\\[.*?\\]', '') WHERE content_id>99999 AND content_id<200000 Последний раз редактировалось Sitealert; 20.12.2020 в 16:48. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Профессор
Регистрация: 21.06.2020
Сообщений: 859
Сказал(а) спасибо: 80
Получил(а) "Спасибо": 187
Нарушения: 0/0 (0)
Репутация: 74780
|
![]()
В принципе то же самое время - 6.7 сек с условием для одной записи
WHERE content_id = 6094079 Текст обрабатывает корректно, но время что-то не того. Сервер 4 ядра, 16 GB озу Проблем со скоростью работы БД не наблюдалось |
![]() |
![]() |
![]() |
#13 |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
![]()
sanek1991, эта операция очень затратна, если большая таблица - так делать не надо.
Надо через php тоже регулярное выражение прогнать (preg_replace) с лимитами по 5-10 тысяч строк за раз. Тут для скорости вообще нужно схитрить, создать таблицу временную с одним полем для этого текста и ключем как ключ основной талицы. При проходе php, выбрать только ключ и это поле текста (SELECT key, text FROM...) записывать результат изменения в эту временную таблицу и по окончании сделать вставку в основную: Код:
INSERT INTO table_name (key, text) SELECT key, text FROM table_temp ON DUPLICATE KEY UPDATE table_name.text=table_temp.text |
![]() |
![]() |
![]() |
#14 |
Слесарь-сайтосборщик
Доцент
Регистрация: 22.06.2020
Адрес: Замкадье
Сообщений: 403
Сказал(а) спасибо: 985
Получил(а) "Спасибо": 1,178
Нарушения: 0/0 (0)
Репутация: 180645
|
![]()
XPraptor, какие там затраты для одной строки таблицы?
Сама операция UPDATE медленная, но мне непонятно, почему на простом REPLACE не тормозит. Для одной строки разница должна быть несущественной, с регуляркой или без регулярки. |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Профессор
Регистрация: 21.06.2020
Сообщений: 859
Сказал(а) спасибо: 80
Получил(а) "Спасибо": 187
Нарушения: 0/0 (0)
Репутация: 74780
|
![]() Цитата:
Через php выбрать запись, обработать её php-шным REGEXP REPLACE, после перезаписать существующую запись в базе новой Затем выбрать следующую запись ... и тд В промежутках перед следующей выборкой, делать паузу, что-бы БД сильно не грузить. Но сам я не программер, знания на уровне общих понятий. Скрипт такой не смог найти. |
|
![]() |
![]() |
![]() |
#16 |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
![]()
Sitealert, Так прогони EXPLAIN на запрос одной строки - что пишет, сколько строк затрагивает, какие индексы задействует?
|
![]() |
![]() |
![]() |
#17 |
Думаю, что надо худеть
Академик
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 632655
|
![]() |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Доцент
Регистрация: 25.07.2020
Сообщений: 437
Сказал(а) спасибо: 486
Получил(а) "Спасибо": 712
Нарушения: 0/0 (0)
Репутация: 7417
|
![]() Цитата:
Если надо - через конвертацию в редактируемые форматы - вариантов много разных. Ну, и через php и буфер или без буфера - просто, конкретно и сердито. |
|
![]() |
![]() |
![]() |
#20 |
Слесарь-сайтосборщик
Доцент
Регистрация: 22.06.2020
Адрес: Замкадье
Сообщений: 403
Сказал(а) спасибо: 985
Получил(а) "Спасибо": 1,178
Нарушения: 0/0 (0)
Репутация: 180645
|
![]() |
![]() |
![]() |
![]() |
Опции темы | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка - MySQL query error [1615]: Prepared statement needs to be re-prepared | sanek1991 | Хостинг и домены | 19 | 29.07.2020 19:24 |
Помогите с SQL запросом replace | sanek1991 | Веб-строительство | 34 | 16.07.2020 13:26 |
Переход с php5 на php7, если много mysql запросов | ziliboba0213 | Веб-строительство | 31 | 14.07.2020 18:44 |