La méthode de suppression de données par lots dans mysql : recherchez d'abord l'identifiant maximum qui remplit les conditions ; puis créez un index sur le champ où ; enfin supprimez les données par lots via la commande "supprimer de nom_table où id < ; limite maxId 10000". Can.
Recommandé : "Tutoriel vidéo MySQL"
Suppression par lots MySQL du Big Data
MySQL peut provoquer un blocage en supprimant une grande quantité de données à la fois, et il peut également lever une exception
The total number of locks exceeds the lock table size in MySQL
Cela est dû au fait que les données à supprimer sont trop volumineuses et que le tampon fourni par MySQL semble n'être qu'environ 8 Mo
le délai d'attente de verrouillage dépasse le délai d'attente
Il doit donc être traité par lots, ce qui est également une idée courante lors de l'exploitation de Big Data
Une meilleure méthode en ligne est :
Trouvez d'abord le plus grand identifiant qui remplit les conditions (les identifiants ici sont ordonnés et n'ont pas besoin d'être consécutifs)
select max(id) from table_name where create_time < '2017-04-06'
Créer un index sur le où le champ peut améliorer l'efficacité
Environ dix millions Les données prennent environ 10 secondes
puis supprimées par ID, 10 000 supprimées à la fois et supprimées en boucle
delete from table_name where id < maxId limit 10000
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!