2010-07-05 1 views
5

In unserem Projekt schreiben wir oft komplexe Joins über wie 3 Tabellen. Erzielen wir Leistungsvorteile durch die Verwendung von Views oder dienen sie nur dazu, die Lebensdauer von Query Writern zu erleichtern? Wenn es darauf ankommt, verwenden wir MySQL. Wenn dadurch irgendwelche Vorteile erzielt werden (andere als einfachere Abfragen natürlich), leuchtet bitte auf.Erhalte ich Leistungsvorteile durch die Verwendung von VIEWs anstelle von JOINs?

Antwort

5

Im Allgemeinen bieten normale Ansichten keine große Leistungsverbesserung gegenüber dem Ausführen einer Abfrage. Die meisten Datenbanksysteme, einschließlich MySql (ich glaube, es war eine Weile her, seit ich sie benutzt habe), bieten eine Art indizierte oder materialisierte Ansichtsfähigkeit. In der Regel müssen solche Sichten eine ganze Reihe von Einschränkungen aufweisen, doch sobald sie erstellt sind, werden die Ergebnisse der Backing-Abfrage in einer physischen Tabelle zwischengespeichert (im Falle von indizierten SQL Server-Sichten eine Tabelle in TempDB). Der Datenbankserver ist dann verantwortlich für das Verfolgen von Änderungen an der zugrunde liegenden Abfrage und das Aktualisieren der zwischengespeicherten Kopie. Abfragen mit einer solchen indizierten/materialisierten Ansicht sind im Allgemeinen viel schneller, in der Reihenfolge der Abfrage einer normalen Tabelle.

+0

Thnx zur Klärung –

3

Ansichten sind einfach logische Tabellen, die nicht anders sind, als wenn Sie zur Laufzeit dieselbe SQL ausführen. Der einzige Unterschied wäre eine Art von materialisierter Ansicht, wie Orakel verwendet, die wie eine zwischengespeicherte Ansicht ist.

+2

Ich wollte deine Antwort zusammen mit jrista als die richtige Antwort markieren, aber anscheinend konnte nur eine Antwort als solche markiert werden, also gab ich deine Antwort eine hohe Stimme. –

1

Ansichten (normale Ansichten) bieten keine Leistungsvorteile an sich, wenn nicht indizierte Sichten (auch als materialisierte Ansicht bezeichnet) verwendet werden, die viele Einschränkungen aufweisen. Nicht alle Ansichten konnten materialisiert werden.

Verwandte Themen