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 INSERTs oder JOINs?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top