MySQL

Doppelte bzw. mehrfache Einträge finden bzw. auflisten

caticonslite_bm_alt

Um doppelte oder gar mehrfach vorkommende Einträge in MySQL zu finden und aufzulisten, kann das folgende MySQL-Statement verwendet werden:

SELECT email, COUNT(1) AS COUNT FROM newsletterRecipients WHERE deleted = 0 GROUP BY email HAVING COUNT(1) > 1;

In diesem Fall erhält man E-Mail-Adressen und die Anzahl der Vorkommnisse.

mysqldump auf (sehr) großen Installationen

caticonslite_bm_alt

mysqldump wird standardmäßig mit der Option „–opt“ ausgeführt (siehe MySQL: mysqldump). Dies ist eine Kurzform für die Optionen „–add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset“. D.h. während des Dumps werden Tabellen gesperrt, um die Konsistenz der Daten zu garantieren. Auf (sehr) großen Installation führt dies allerdings zu einer vorübergehenden Nichterreichbarkeit des Systems. Im schlimmsten Fall kann sogar eine Überlastung des/der Server(s) die Folge davon sein: Nämlich dann, wenn während des Dumps – aufgrund der gesperrten Tabellen – sehr viele Webserver-Prozesse auf wartend gesetzt und danach abgearbeitet werden sollen.

Um diesem Problem zu entgehen, muss mysqldump mit der Option „–skip-lock-tables“ gestartet werden – z.B.:

mysqldump --skip-lock-tables -hHostname -uUsername -pPassword Database > Database.sql

Vermeiden ließe sich das Problem natürlich auch mit einer Master-Slave-Konfiguration.

 nach oben