Mysql ALTER von latin1 auf utf8 Query Zeit

Mysql von latin1 auf utf8 Wartezeit

Ich habe ein Mysql das Standard mit im latin1_swedish_ci angelegt wurde.
Nun hab ich auch fleißig eine Datenbank erzeugt und auch Tabellen, alles latin1_swedish_ci .
Es kommt der Tag wo ich nun UTF8-Zeichen brauche.
Ich dachte, oh yeah um ganz schlau zu sein, mach ich einfach
ALTER DATABASE datenbank_name DEFAULT CHARACTER SET utf8

Das interessante ist nun das die gleichen Querys die vorher nur 5 Sekunden gebraucht haben , nun auf einmal mindestens 60 Sekunden (also Faktor 12-20) brauchen.
Ich habe es dann wieder rückgängig gemacht und die benötigten Inhalte via PHP in UTF-8 geschrieben. Soweit geht’s also wieder unter 5 Sekunden mit den gleichen Querys.

Frage : Kann mir jemand erklären was Mysql da zwischendurch alle macht , das es so lange dauert eine UTF-8 Tabelle in einer latin1 Datenbank zu nutzen .

Ich finde in der Mysql Dokumentation keinen Hinweis darauf.
Ich übertrage auch die Daten via UTF-8 im PHP mit
mysql_select_db($dbs[‚db‘]);
mysql_query(‚SET NAMES ‚utf8‘‘);
Das ist also eigentlich nicht das Problem, nur anscheinend muss Mysql die gesamte Tabelle (bzw. die temporären) immer wieder in UTF-8 umschreiben bevor es weiter arbeitet. Anders kann ich mir kaum die immense Verzögerung erklären.

Vielleicht weiß ja jemand Bescheid warum das so ist.

Danke , für das lesen, nachdenken und antworten.

Hallo „Iacta alea est“,

ich vermute mal nicht, dass Du Dir vorher den Ausführungsplan angesehen hast.Deshalb kann ich nur eine grobe Vermutung starten.

Mein Verdacht ist, dass jetzt für die Abfrage kein Index mehr verwendet wird, da erst der Zeichensatz für das abgefragte Attribut in den anderen Zeichensatzes konvertiert werden muss.

Im Übrigen hast Du nur eine Konvertierung des Datenbank-Default-Schema vorgenommen und nicht der existierenden Tabellen (zumindestens nach Deinen Aussagen). Eventuell könnte Dir eine entsprechende Modifikation der Tabelle helfen.

Mehr kann man leider aus den Aussagen nicht herleiten.

MfG Georg V.

Im Übrigen hast Du nur eine Konvertierung des
Datenbank-Default-Schema vorgenommen und nicht der

Oh hab auch die Falsche Zeile hier hin kopiert.

Es war nicht ALTER Datenbank , sondern ALTER TABLE

Auch mit CONVERT feldname hatte ich leider kein Erfolg. Erst nach dem ich UTF8 mit php geschrieben habe , war alles in butter.

Ich werde es also nochmal replizieren um dann mir den Ablaufplan anzugugen. In der hecktik hab ich das glatt übersehen, erstmal da nach zu schauen .

Danke für die Info , ich denk auch das es an den Indexen lag .

Wenn ich also ein Feld (kein Index) im UTF8 Format Convertieren muss , wie gehe ich dann vor.
Oder bin ich da schon auf dem Holzweg ?
Bleiben die Zeichen dennoch latin1 ?