9 votes

Différence entre DROP USER et la suppression d'une ligne de la table mysql.user

J'ai une base de données avec des centaines de connexions actives à tout moment. Lorsque j'utilise l'instruction sql DROP USER pour supprimer un compte utilisateur, cela prend ~4 secondes, pendant lesquelles toutes les autres connexions ont l'état "Checking permissions". Cela signifie que pour supprimer 1000 utilisateurs, je vais effectivement verrouiller la base de données pendant une bonne partie des 4000 secondes, ce qui est inacceptable. Je remarque cependant que la suppression d'une ligne d'utilisateur de la table mysql.users est instantanée.

La suppression d'une ligne de mysql.users est-elle correcte ? Quels sont les inconvénients par rapport à l'utilisation de DROP USER ? Est-ce que je laisse des enregistrements périmés ailleurs ? Y a-t-il des problèmes de propagation ? Je vais très probablement devoir suivre cette voie, mais je veux savoir quel autre nettoyage je devrai faire.

3voto

Spero.ShiroPetto Points 863

Dépend de votre version de MySQL

Déposer l'utilisateur MySQL <= v5.0 a seulement supprimé l'enregistrement de l'utilisateur mais pas les privilèges. MySQL >= v5.0.2 fait les deux en une seule fois.

Il est également possible de faire passer plusieurs utilisateurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X