sql >> Database teknologi >  >> RDS >> Mysql

MySql ser ydeevne

Det kommer an på.

Det afhænger helt af, hvad du ser gennem view. Men sandsynligvis reducere din indsats og give højere ydeevne. Når SQL-sætningen refererer til en ikke-indekseret visning, analyserer parseren og forespørgselsoptimeringen kilden til både SQL-sætningen og visningen og løser dem derefter i en enkelt eksekveringsplan. Der er ikke én plan for SQL-sætningen og en separat plan for visningen.

En visning er ikke kompileret . Det er et virtuelt bord, der består af andre borde. Når du opretter det, ligger det ikke et sted på din server. De underliggende forespørgsler, der udgør visningen, er underlagt de samme præstationsforbedringer eller -nedslag som forespørgselsoptimeringsværktøjet. Jeg har aldrig testet ydeevne på en visning VS dens underliggende forespørgsel, men jeg kan forestille mig, at ydeevnen kan variere lidt. Du kan få bedre ydeevne på en indekseret visning, hvis dataene er relativt statiske. Det kan være, hvad du tænker, måske i form af "kompileret".

Fordele ved visninger:

  1. Se dataene uden at gemme dataene i objektet.
  2. Begræns visningen af ​​en tabel, dvs. kan skjule nogle af kolonnerne i tabellerne.
  3. Slå sammen to eller flere tabeller og vis det som ét objekt til brugeren.
  4. Begræns adgangen til en tabel, så ingen kan indsætte rækkerne i tabellen.

Se disse nyttige links:

  1. Ydeevne af VIEW vs. SQL-sætning
  2. Er en visning hurtigere end en simpel forespørgsel?
  3. Mysql VIEWS vs. PHP-forespørgsel
  4. Er MySql Views dynamiske og effektive?
  5. Materialiseret visning vs. tabeller:Hvad er fordelene?
  6. Forespørger over en visning, der er langsommere end at udføre SQL direkte?
  7. En løsning på ydeevneproblemerne ved FRISTELSELIGE visninger
  8. Se præstationsforbedringer ved at bruge indekserede visninger i SQL Server


  1. Definer trinene for SQL Server Cursor - SQL Server / TSQL Tutorial

  2. Hvad bruger LISTAGG med ORDER BY NULL egentlig som bestillingskriterier?

  3. Ingen sådan kolonne sqlite undtagelse

  4. Oracle:hvordan man INDSÆTTER, hvis en række ikke eksisterer