Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2019, 16:16   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
Вопрос массовое удаление из БД

Доброго времени суток!

Подскажите пожалуйста возможно ли как то сделать массовое удаление из базы данных без нагрузки на неё?

к примеру мне за раз нужно удалить к примеру 5 000 а может и 15 000 записей и вот как это сделать правильно что бы не очень нагружать БД и желательно за один раз
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 03.10.2019, 16:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Не нагружать не получится. А одним запросом аж бегом, если условие where удачно получится сделать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.10.2019, 16:40   #3
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Не нагружать не получится. А одним запросом аж бегом, если условие where удачно получится сделать
то есть через цикл where если сделать то всё будет хорошо? А по времени исполнения сколько может занять?
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 03.10.2019, 16:40   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

не очень понятен вопрос.
удаление - это же ОДНА команда.

Код:
delete from Таблица where ВашеУсловие
если нужно удалить вообще все записи - это ещё проще (см. TRUNCATE TABLE )

Цитата:
Сообщение от s88s Посмотреть сообщение
то есть через цикл where если сделать то всё будет хорошо?
а что такое цикл для where ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2019, 16:49   #5
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не очень понятен вопрос.
удаление - это же ОДНА команда.

Код:
delete from Таблица where ВашеУсловие
То что одна команда это я знаю

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

если нужно удалить вообще все записи - это ещё проще (см. TRUNCATE TABLE )
В том то и дело что удалять нужно не всё а к примеру из 99 999 записей удалить к примеру 25 000

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а что такое цикл для where ?
Сорян заработался хотел написать while
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 03.10.2019, 16:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от s88s Посмотреть сообщение
Сорян заработался хотел написать while
стало ещё менее понятно


Цитата:
Сообщение от s88s Посмотреть сообщение
В том то и дело что удалять нужно не всё а к примеру из 99 999 записей удалить к примеру 25 000
Как Вы отличаете те записи, которые нужно удалять от тех, которые не нужно удалять?
По какому признаку?

Вот этот признак и укажите в условии
Код:
delete from Таблица where ТутВашПризнакДляУдаления 
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.10.2019, 17:03   #7
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

что удалять через условия это тоже всё понятно что я проверяю что если подходит под условия то удаляю ... вопрос как сделать что бы по времени занимало минимально ... к примеру в базе 99 999 и из них мне надо удалит 25 000 и вот что бы времени на удаление было минимальным
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 03.10.2019, 17:10   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Соствить список по ключам и грохнуть через in. Если логика не сложная можно подумать о ее переносе на субд.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массовое переименование файлов. lisa999 Софт 10 14.12.2015 19:27
Массовое редактирование govorun1 Microsoft Office Access 3 10.11.2014 09:32
Массовое добавление файлов gusvovan Общие вопросы Delphi 1 06.10.2011 19:06
Массовое присваивание Zhenya-Pvl Общие вопросы C/C++ 6 26.02.2011 17:51
Массовое редактирование тхт файлов Tvitvi PHP 3 06.05.2010 20:51