У меня есть MySQL база данных только с 1 таблицей: Поля: blocknr (не уникальный), btcaddress (не уникальный), txid (не уникальный), vin, vinvoutnr, netvalue.
Индексы существуют как на btcaddress, так и на txid.
Данные в нем выглядят так: 
Мне нужно удалить все «удаляемые» записи пары. Пример приведен красным. Условия:
txid должен быть одинаковым (может быть более 2 записей с одинаковым txid)
vinvoutnr должен быть одинаковым
vin должен быть другим (может иметь только 2 значения 0 и 1, поэтому 1 должно быть 0, другое должно быть 1)
В таблице из 36 миллионов записей будет удалено около 33 миллионов.
Я использовал это:
delete t1
from registration t1
inner join registration t2
where t1.txid=t2.txid and t1.vinvoutnr=t2.vinvoutnr and t1.vin<>t2.vin;
Это работает, но занимает 5 часов.
Может быть, это будет работать тоже (еще не проверено):
delete t1
from registration as t1, registration as t2
where t1.txid=t2.txid and t1.vinvoutnr=t2.vinvoutnr and t1.vin<>t2.vin;
Или я забываю о запросе на удаление и пытаюсь создать новую таблицу со всеми неделатабельными элементами, а затем удалить оригинал?
База данных может быть в автономном режиме для этого запроса на удаление.