MySQL: Langsames „ALTER TABLE“?

neulich musste ich die Struktur einer Tabelle mit 20.000 Einträgen mittels phpMyAdmin ändern. Ein als „text“ definiertes Feld stellte sich als zu kurz heraus und musste in „mediumtext“ geändert werden. Dabei kommt ein mySQL-Befehl wie dieser heraus (sichtbar mit „SQL Vorschau“):

ALTER TABLE `tabelle` CHANGE `spalte` `spalte` MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci; 

Da die Anzahl der Datensätze nun nicht besonders groß ist, hoffte ich auf ein paar Sekunden Verarbeitungszeit. Weit gefehlt – wenigsten 10 Minuten war der Rechner am Arbeiten, sodass inzwischen sogar mehrmals die 23 Sekunden PHP-Laufzeit (phpMyAdmin läuft mit PHP) überschritten wurde und der Browser die Verbindung verlor. Lediglich die HD-Lampe verriet mir, dass die Sache noch im Gang war.

Später machte ich die gleiche Sache auch beim Kunden und bat die Mitarbeiter, die Finger von den tasten zu nehmen. Allerdings dauerte der Vorgang dort dann wirklich nur vielleicht 2 Sekunden. Hä?

Ich bin der Sache auf den Grund gegangen. Es liegt nicht an mySQL, auch nicht an PHP oder am Webserver. Es lag hier an der unterschiedlichen Hardwareausstattung beider Systeme! Beim Kunden läuft ein „richtiger Server“ mit viel Speicher und Tempo, bei mir nur eine etwas zu schmale Workstation mit einem Prozessor mit 2×2 GHz und 6 GB RAM.

Ein ALTER TABLE erfordert ein mehrfaches Umkopieren des gesamten Inhalts der Tabelle und ein umfängliches Handling der Indexe. Das dauert auf einer schmalen maschine eben bedeutend länger und erfordert vielleicht sogar noch Auslagerungen von Speicher. Möglicherweise kommt es auch darauf an, wie PHP und mySQL an den Webserver angebunden sind (?).

Hier bei Stackoverflow wird die Sache gut beschrieben und einige Tips sind auch dabei.

Dass mein Frontend abgeschossen wurde, weil die Laufzeit zu lang wird, hat nicht geschadet – als die HD-Lampe endlich aus blieb, reichte ein Reload und phpMyAdmin war wieder da.

Ubuntu: Nachinstallation des Network Manager (2)

Ich beziehe mich hier auf meinen Artikel „Ubuntu: Nachinstallation des Network Manager (1)„, weil ich einiges ergänzen muss.

Denn so, wie ich es dort beschrieben habe, funktioniert es unter Umständen nicht. Nämlich dann, wenn nicht nur der NetworkManager deinstalliert wurde, sondern auch Netplan deaktiviert wie hier beschrieben. Und dann muss man Netplan auch erst wieder einrichten, wie es hier beschrieben wird, aktivieren und den Rechner neu starten (damit GRUB durchlaufen wird). Bei diesem Schritt bitte beachten: „sudo update-grub“ wird gern vergessen…

Ich habe jetzt gerade nochmal alles, alles, alles von vorn gemacht und siehe da, es scheint zu spielen. Ich habe ein paar VPN-Verbindungen über ProtonVPN und FreeVPN eingerichtet und sie funktionieren!

Aber ich würde mich über weitere Hinweise in Kommentaren sehr freuen, denn es war wirklich eine schwierige Geduldsübung.

Android: Berechtigung „Rückrufnummer“ fehlt

Ich benutze ein Huawei P8 Lite 2017 mit Android 8.

Eine zeitlang habe ich bei diversen installierten Apps oder während der Installation – und scheinbar häufiger werdend – eine Fehlermeldung bekommen mit folgendem Inhalt:

Diese App funktioniert nur dann richtig, wenn du den Google Play Diensten Zugriff auf Folgendes gewährst:

Rückrufnummer

Um fortzufahren, gehe zu Einstellungen / Berechtigungen und aktiviere alle aufgelisteten Optionen.

Auch wenn mir die Option „Rückrufnummer“ rätselhaft schien, folgte ich dem enthaltenen Link und sah die fraglichen Einstellungen:

Nur „Telefon“ passte irgendwie zum genannten Fehler, aber das war eingeschaltet. Bei verschiedenen Apps kann diese Liste anders aussehen, aber „Telefon“ war immer dabei.

Nach Recherchen im Internet und der passenden Newsgroup im Usenet (de.alt.comm.android) stieß ich dann auf einen Hinweis, der zwar seltsam klang, aber auch bei mir funktioniert hat. Man möge eben diese Berechtigung „Telefon“ bei den Google Play Diensten ausschalten, die Warnung wegen drohender Funktionsunfähigkeit ignorieren und die Option gleich wieder einschalten. Einige empfehlen noch einen abschließenden Neustart, was ja sowieso ab und zu mal nützlich ist.

Fazit: Zum Einen handelt es sich um einen Übersetzungsfehler – es heißt nicht Rückrufnummer, sondern Telefon. Zum anderen: Dass diese Berechtigung zwar eingeschaltet ist, aber nicht funktioniert, und dass einfaches Ein- und Ausschalten den Fehler behebt, ist für mich klar ein Bug. Der zudem nicht neu ist, sondern anscheinend seit Jahren bekannt und zwar unabhängig von der Android-Version.

Thunderbird: Sortierung nach Datum

Ich bevorzugen in Thunderbird die nach Datum absteigende Sortierung ihrer Mails, so dass die neuen Mails oben erscheinen. Im Gegensatz zu den News-Threads innerhalb einer Gruppe, die ja sowieso nach unten aufklappen. Der Standard zeigt die Mails aufsteigend sortiert an, was bei vollen Ordnern mühsam ist, denn dadurch muss man weit runter scrollen.

Natürlich lässt sich die Einstellung leicht durch einen Klick in den Spaltenkopf von „Datum“ ändern, Setze ich meinen Thunderbird neu auf oder erstelle ein neues Profil und lasse die .Inhalte der IMAP-Konten wieder einlesen, habe ich in meinen vielen Dutzend Ordnern alles „falsch rum“ und müsste überall in den Spaltenkopf klicken, um die Reihenfolge umzudrehen.

Aber es geht einfacher über eine Einstellung in der Konfiguration.

  1. Extras/Bearbeiten *) – Einstellungen – Erweitert – Allgemein – „Konfiguration bearbeiten“
  2. Ggf. die folgende Warnung mit „Ich werde vorsichtig sein, versprochen!“ bestätigen
  3. nachdem Schlüssel mailnews.default_sort_order suchen und nach Doppelklick den Wert auf 2 ändern (1 = aufsteigen (default), 2 = absteigend)
  4. Konfiguration schließen schließen, die Änderung wirkt sofort

*) Extras: Windows, Bearbeiten: Linux

Ich habe es eben probiert mit der Version 68.10.0 (64-Bit) für Linux, das gilt aber auch schon für frühere Versonen.