Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Удаление 10000 записей из таблицы (Nikita) 10/03/2004 - 11:14:44
      Re: ограничение на длину IN - имхо чушь (Alec) 10/03/2004 - 14:16:34
      Re: ограничение на длину IN - имхо чушь (Nikita) 11/03/2004 - 10:27:21

> Original message text:
> From: Nikita - 10/03/2004 - 11:14:44
> Subject:Удаление 10000 записей из таблицы
> -----------------
> Господа, подскажите:
>
> Есть такая задача:
> удалить из таблицы А строки, у которых поле ID встречается в таблице B.
>
> Пишу на ПХП
> MySQL версии 3.23.xx !
>
> В таблице А 80000 строк, в таблице В 250000 строк.
>
> Насколько я понял нужно сделать в 2 этапа:
>
> 1. выбрать совпадающие айдишники из 2х таблиц, положить их в массив. Массив преобразовать в строку (123, 124, 345, .... 34567)
> 2. Выполнить Delete from table A where ID in (123, 124, 345, .... 34567)
>
> Как бы всё должно работать. Но! Один знакомый сказал что существует какое то ограничение на количество элементов в выражении IN ().
> В моем случае таких айдишников для удаления может быть от 3000 до 80000.
> И вот вроде бы существует ограничение по количеству , примерно 1000 штук?
>
> Что делать??
> Как бы не правильно делать удаление where ID in (80000 значений, перечисленных через запятую), а как по другому сделать не могу придумать :(
>
>
> И кстати второй вопросик: нужно ли после этих удалений делать OPTIMIZE TABLE, или так сойдёт ;) ?
>


From: Alec - 10/03/2004 - 14:16:34
Subject:ограничение на длину IN - имхо чушь
-----------------
тут пхп не причем....
у тебя скорее сам сервер грохнется по ошибке слишком длинного SQL-запроса. вот тут ограничение есть.
то, что 3,23 - эт плохо. там нет вложенных запросов....

разве что создать временную таблицу-список ID-ов для удаления
выбрать из основной таблицы записи, которые удалят НЕ надо (join)
снести основную (truncate) и вставить все из получившейся
----
создал таблицу zz с 100 000 записями (просто id auto_inc)
другую zz1 - десяток записей
delete from zz1 where id in (select id from zz)
отработало. мгновенно.




[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
13399



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |