![]() |
|
Модераторы: skyboy |
![]()
|
|
| Ramoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.12.2012 Репутация: нет Всего: нет |
Всем привет)
Есть таблица на десяток миллионов записей. Всё отлично работает, но (!) вот в одном поле есть значение: ООО "\Рога и копыта". Ну ооочень не хочется делать SELECT, потом while ($row=mysql_fetch_array($query) и последующим UPDATE в цикле. Вопрос в следующем - возможно ли сразу сделать один запрос UPDATE, где менялось бы значение поля с оригинального на то же самое, но вместо \" просто " ? |
|||
|
||||
| Ramoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.12.2012 Репутация: нет Всего: нет |
Наверняка же можно попробовать регулярку. Если бы ещя я понимал её (
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
вариант простой, но с проблемами.
коль записей много, работать будет долго. вариант подольше, зато побезопаснее. выгрузить дамп в файл. не нагружая базу, найти, исправить, сделать в виде запроса и закинуть обратно. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Так надо же сперва отобрать записи для апдейта...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Ramoff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 25.12.2012 Репутация: нет Всего: нет |
Спасибо большое за варианты. Не думал, что такая схема будет работать. К счастью эта база готовится только для выпуска, поэтому дамп делать совсем не обязательно. И мне кажется, что напрямую в базе делать изменения проще, чем в дампе - тут хотя бы можно порционно захватывать данные через тот же LIMIT. Заодно и будет перестраиваться индекс на поля. Хм, если поставить крон, то можно вообще не париться. К тому же ТТХ сервера позволяют выполнять ёмкостные операции без последствий.
Спасибо всем большое! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
да, согласен. однако, мне интересно, как будет работать where instr(value, '\"')>0 раз фулскан(другого я просто не могу представить), то я думал, разница не велика, есть where или нет. мол, что так, что так пробежаться по полю value придется. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Всамделе должна бы быть велика. Запись обычно куда дороже чтения, потому чтение всего набора и модификация отдельных записей, в общем случае дешевле тупого обновления всего набора. Лишь в частном случае, когда подавляюще большая часть набора подлежит модификации, разница может оказаться не существенной или даже иметь незначительный оверхед. Добавлено через 11 минут и 49 секунд маленький тестекйс. Правда для оракала, не для маси
Это сообщение отредактировал(а) Zloxa - 11.1.2013, 10:40 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 41 Всего: 260 |
Zloxa, пасиба!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |