2017-10-17 7 views

Répondre

0

vous pouvez utiliser ce lot de manière répétée si vous voulez 'réponse'. J'utilise vous n'avez pas un indice (indice serait bien sur la clause where):

DELETE FROM `table` 
WHERE (whatever criteria if any) 
ORDER BY `id` 
LIMIT 1000 

Il y a une autre façon que je lis, si jamais essayé:

for i in `seq 1 1000`; do 
    mysql -e "select id from table_name where (condition) order by id desc limit 1000 " | sed 's;/|;;g' | awk '{if(NR>1)print "delete from table_name where id = ",$1,";" }' | mysql; 
done 

Si vous cherchez encore Pour accélérer la procédure, essayez cette approche:

CREATE TABLE new_tbl LIKE tbl; 

RENAME TABLE tbl TO old_tbl, new_tbl TO tbl; 

DROP TABLE old_tbl;