Tengo una base de datos con cientos de conexiones activas en cualquier momento. Cuando uso la declaración SQL de DROP USER para eliminar una cuenta de usuario, demora ~ 4 segundos, durante los cuales todas las demás conexiones tienen el estado "Verificación de permisos". Esto significa que para eliminar 1000 usuarios, efectivamente bloquearé la base de datos durante una buena parte de 4000 segundos, lo cual es inaceptable. Sin embargo, me doy cuenta de que la eliminación de una fila de usuario de la tabla mysql.users es instantánea.Diferencia entre DROP USER y eliminación de una fila de la tabla mysql.user
Está borrando una fila de mysql.users kosher? ¿Cuáles son los inconvenientes en comparación con el uso de DROP USER? ¿Dejo filas obsoletas en otro lado? ¿Hay problemas de propagación? Probablemente tendré que seguir esta ruta, pero quiero saber qué otra limpieza tendré que hacer.
Si emite sus declaraciones 1000 DROP USER dentro de una sola transacción, ¿supera los 4000 segundos? (Me doy cuenta de que es un número absurdo que se usa para ilustración, pero tengo curiosidad si la penalización de tiempo se puede tomar solo una vez, incluso para varias caídas ...) – sarnold
Gran pregunta. De hecho, lo probé. Lamentablemente, no, el tiempo empleado crece proporcionalmente al número de usuarios que se descartan. Editar: Este es también el caso si se especifican múltiples usuarios en un solo comando DROP USER. – BrainCore