Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sind MySQL-Ansichten dynamisch und effizient?

Grundsätzlich gibt es 2 Arten von Ansichten in MySQL.

  1. Ansichten zusammenführen

    Diese Art von Ansicht schreibt im Grunde nur Ihre Abfragen mit dem SQL der Ansicht neu. Es ist also eine Abkürzung, um die Abfragen selbst zu schreiben. Dies bietet keinen wirklichen Leistungsvorteil, erleichtert aber das Schreiben komplexer Abfragen und erleichtert die Wartung (denn wenn sich die Ansichtsdefinition ändert, müssen Sie nicht 100 Abfragen gegen die Ansicht ändern, sondern nur eine Definition).

  2. Versuchbare Ansichten

    Dieser Ansichtstyp erstellt eine temporäre Tabelle mit der Abfrage aus dem SQL der Ansicht. Sie hat alle Vorteile der Zusammenführungsansicht, reduziert aber auch die Sperrzeit für die Tabellen der Ansicht. Daher könnte es auf hochbelasteten Servern einen ziemlich signifikanten Leistungsgewinn haben.

Es gibt auch den Ansichtstyp "Undefiniert" (der Standard), der MySQL den Typ auswählen lässt, der seiner Meinung nach zum Zeitpunkt der Abfrage der beste ist...

Beachten Sie jedoch, dass MySQL keine Unterstützung für materialisierte Ansichten bietet . Es ist also nicht wie bei Oracle, wo eine komplexe Ansicht die Leistung von Abfragen erheblich steigert. Die Abfragen der Views werden immer in MySQL ausgeführt.

Was die Effizienz betrifft, erhöhen oder verringern Views in MySQL die Effizienz nicht. Sie sind da, um Ihnen das Leben beim Schreiben und Verwalten von Abfragen zu erleichtern. Ich habe Ansichten auf Tabellen mit Hunderten von Millionen Zeilen verwendet, und sie haben einwandfrei funktioniert ...