sql >> Database >  >> RDS >> Mysql

Heeft de kolomvolgorde invloed op de prestaties in Microsoft SQL Server 2012?

De volgorde van kolommen in een tabel heeft een zeer kleine invloed op de prestaties, in vergelijking met de prestatie-impact van uw databaseontwerp (entiteiten, attributen en relaties), uw transactieontwerp en uw queryontwerp.

Om te zien of het verschil niet te verwaarlozen is, moet je echt wat tests opzetten en de resultaten vergelijken.

Meestal plaats ik de primaire sleutel als de eerste kolom, dan de externe sleutel (s), en dan natuurlijke sleutels en vaak gebruikte kolommen. Ik zet meestal de langere snaren aan het einde van de rij. Maar dit is niet per se een prestatie-optimalisatie, het is eerder een stijlvoorkeur die ik gebruik voor het gemak.

De volgorde van kolommen kan van invloed zijn op de grootte van de rij in SQL Server, wanneer een groot aantal kolommen in een rij nullable is en de meeste van die kolommen NULL bevatten. SQL Server (zoals Oracle) heeft optimalisatie waarbij geen ruimte is gereserveerd voor kolommen die NULL-waarden AAN HET EINDE van de rij bevatten. Er is wat ruimte gereserveerd voor elke kolom in de rij, tot de laatste niet-NULL-waarde in de rij.

Het voordeel hiervan is dat als u veel kolommen met nullwaarden heeft, u de kolommen wilt die het vaakst niet NULL zijn VOOR de kolommen die het vaakst NULL zijn.

OPMERKING:Houd er rekening mee dat SQL Server de kolommen in een tabel eerst ordent door te bepalen of de kolom een ​​vaste lengte of variabele lengte heeft. Alle kolommen met vaste lengte worden eerst opgeslagen, gevolgd door alle kolommen met variabele lengte. Binnen die sets kolommen (vast en variabel) worden de kolommen opgeslagen in de volgorde waarin ze zijn gedefinieerd.



  1. Retourneer meerdere velden als een record in PostgreSQL met PL/pgSQL

  2. mysql join ON en AND om welsprekend te laravel

  3. PHP:mysql_connect retourneert niet FALSE

  4. Inlogpogingen vertragen - PHP &MySQL &CodeIgniter