sql >> Database >  >> RDS >> Mysql

Het beste om * te gebruiken bij het aanroepen van veel velden in mysql?

Opmerking: het benoemen van alle velden is natuurlijk een best practice, maar in dit bericht zal ik alleen prestatievoordelen bespreken, niet ontwerp- of onderhoudsvoordelen.

De * syntaxis kan om de volgende redenen langzamer zijn:

  • Niet alle velden zijn geïndexeerd en de query gebruikt volledige tabelscan. Waarschijnlijk niet uw geval:het is nauwelijks mogelijk dat alle velden die u retourneert, worden geïndexeerd met een enkele index.

  • Het retourneren van volgvelden uit een tabel die kolommen met variabele lengte bevat, kan resulteren in een lichte zoekoverhead:om 20th te retourneren veld, vorige 19 moeten worden onderzocht en offsets moeten worden berekend.

  • Er moeten alleen meer gegevens worden geretourneerd (doorgegeven via de verbinding).

Aangezien je bijna alle velden nodig hebt, is de laatste reden waarschijnlijk de belangrijkste. Zeg, de description TEXT veld kan slechts 1 zijn van 50 velden die niet op de pagina worden gebruikt, maar kunnen 10 in beslag nemen keer zoveel ruimte als alle andere velden samen.

In dit geval is het natuurlijk beter om alle velden een naam te geven en de lange velden die je niet nodig hebt weg te laten.



  1. Top 10 redenen om Access en Excel samen te gebruiken

  2. VB.NET MySQL-verbinding

  3. SQL Server-equivalent van de functie substring_index in MySQL

  4. Een SQLite-clientdatabase synchroniseren met een MySQL-serverdatabase