MySQL zeigt die Leistung für Alias-Zwecke an
-
29-09-2020 - |
Frage
Ich arbeite also an einem Rails-Projekt und habe eine Legacy-Datenbank, die von anderen Anwendungen verwendet wird, daher kann ihre Struktur nicht geändert werden.Das Problem ist, dass Tabellen- und Spaltennamen nicht den Rails-Konventionen folgen.Eine gängige Lösung dafür besteht darin, MySQL-Ansichten zu erstellen, die nur Spalten richtig aliasen.
Dies sind tot einfache Ansichten, die nur haben
SELECT old_column_1 AS new_column_1, old_column_2 AS new_column_2 FROM table_name;
Einige Tabellen sind sehr groß, z. B. 22 Millionen Zeilen (2 GB).Alle Tische sind MYISAM
.Es gibt auch einen MEMORY
tabelle mit 2 Millionen Zeilen (~ 350 MB)
Die Schlüsselfrage ist, wie viel Aufwand ich mit solchen Ansichten habe und wie sich dies in irgendeiner Weise auswirkt ROW LOCK
oder TABLE LOCK
während INSERT
s oder JOIN
s?
Lösung
YMMV.Hits manchmal dieselben Optimierungen nicht durchführen, was zu einer langsameren Ausführung führt als das Ausführen der SELECT
direkt.Da Ihr Fall unkompliziert ist, entstehen Ihnen wahrscheinlich keine spürbaren Kosten.
INSERTs
durch eine VIEW
einschränkungen haben;hört sich an, als würdest du sie nicht schlagen.Lesen Sie das Handbuch.
JOINs
ist ein Ort, an dem der Optimierer den Ball fallen lassen kann;schlagen Sie vor, dass Sie offline damit experimentieren, bevor Sie sich verpflichten, die Änderung vorzunehmen.