sql >> Databasteknik >  >> RDS >> Mysql

Är MySql Views dynamiska och effektiva?

I grund och botten finns det två typer av vyer i MySQL.

  1. Slå samman vyer

    Denna typ av vy skriver i princip bara om dina frågor med vyns SQL. Så det är en förkortning för att skriva frågorna själv. Detta ger ingen verklig prestandafördel, men gör det enklare att skriva komplexa frågor och göra underhållet lättare (eftersom om vyns definition ändras behöver du inte ändra 100 frågor mot vyn, bara en definition).

  2. Temptable Views

    Den här typen av vy skapar en tillfällig tabell med frågan från vyns SQL. Den har alla fördelar med sammanslagningsvyn, men minskar också låstiden på vyns tabeller. Därför kan det ha en ganska betydande prestandavinst på högbelastade servrar.

Det finns också vytypen "Odefinierad" (standard), som låter oss välja vad MySQL tycker är den bästa typen vid frågetillfället...

Men notera att något viktigt att notera är att MySQL inte har något stöd för materialiserade vyer . Så det är inte som Oracle där en komplex vy kommer att öka prestandan för frågor mot den avsevärt. Frågningarna i vyerna körs alltid i MySQL.

När det gäller effektiviteten ökar eller minskar inte vyer i MySQL effektiviteten. De är till för att göra ditt liv enklare när du skriver och underhåller frågor. Jag har använt vyer på tabeller med hundratals miljoner rader, och de har fungerat bra...



  1. Skapa rollbaserad åtkomstkontroll i MongoDB

  2. Metod Illuminate\Support\Collection::save finns inte i Laravel

  3. Hur bestämmer SQL Server format för implicit datetime-konvertering?

  4. foreach %dopar% + RPostgreSQL