sql >> Database >  >> RDS >> Mysql

Zijn MySql-weergaven dynamisch en efficiënt?

In principe zijn er in principe 2 typen weergaven in MySQL.

  1. Weergaven samenvoegen

    Dit type weergave herschrijft in feite uw query's met de SQL van de weergave. Het is dus een afkorting voor het zelf schrijven van de queries. Dit biedt geen echt prestatievoordeel, maar maakt het schrijven van complexe query's eenvoudiger en het onderhoud eenvoudiger (aangezien als de weergavedefinitie verandert, u niet 100 query's hoeft te wijzigen ten opzichte van de weergave, alleen de ene definitie).

  2. Verleidelijke weergaven

    Dit type weergave maakt een tijdelijke tabel met de query uit de SQL van de weergave. Het heeft alle voordelen van de samenvoegweergave, maar vermindert ook de vergrendeltijd op de tabellen van de weergave. Daarom kan het op zwaarbelaste servers een behoorlijk aanzienlijke prestatiewinst opleveren.

Er is ook het weergavetype "Ongedefinieerd" (de standaard), waarmee MySQL kan kiezen wat het denkt dat het beste type is op het moment van de vraag...

Maar merk op dat iets belangrijks om op te merken is dat MySQL geen ondersteuning biedt voor gematerialiseerde weergaven . Het is dus niet zoals Oracle waar een complexe weergave de prestaties van query's ertegen aanzienlijk zal verbeteren. De queries van de views worden altijd uitgevoerd in MySQL.

Wat de efficiëntie betreft, verhogen of verlagen Views in MySQL de efficiëntie niet. Ze zijn er om uw leven gemakkelijker te maken bij het schrijven en onderhouden van vragen. Ik heb views gebruikt op tabellen met honderden miljoenen rijen, en ze hebben prima gewerkt...



  1. 1114 (HY000):De tafel is vol

  2. TSQL DateDiff om het aantal dagen met 2 decimalen te retourneren

  3. Tabelstructuur kopiëren naar nieuwe tabel

  4. Kolomnaam Oracle-tabel met spatie