sql >> Databasteknik >  >> RDS >> Mysql

Är det dåligt för prestandan att välja alla kolumner?

Frågan här är inte så mycket en fråga om databasservern, utan bara nätverkskommunikationen. Genom att markera alla kolumner samtidigt säger du åt servern att återvända till dig, alla kolumner på en gång. När det gäller oro över IO och allt det där, behandlas dessa bra i frågan och svaret @Karamba gav i en kommentar:välj * vs välj kolumn . Men för de flesta verkliga applikationer (och jag använder "applikationer" i alla avseenden), är huvudproblemet bara nätverkstrafik och hur lång tid det tar att serialisera, överföra och sedan deserialisera data. Fast egentligen är svaret detsamma oavsett.

Så att dra tillbaka alla kolumner är bra, om du tänker använda dem alla, men det kan vara mycket extra dataöverföring, särskilt om du lagrar till exempel långa strängar i dina kolumner. I många fall kommer förstås skillnaden att vara omöjlig att upptäcka och är för det mesta bara en principfråga. Inte alla, men en betydande majoritet.

Det är egentligen bara en avvägning mellan din ovannämnda lättja (och tro mig, vi känner alla så) nu och hur viktig prestation egentligen är. är.

Som allt sagt, om du gör har för avsikt att använda alla kolumnvärden, det är mycket bättre att dra tillbaka dem alla på en gång och sedan skickar du en massa frågor.

Tänk på det som att göra en webbsökning:du gör din sökning, du hittar din sida och du behöver bara en detalj. Du kan läsa hela sidan och veta allt om ämnet, eller så kan du bara hoppa till delen om vad du letar efter och bli klar. Det senare är mycket snabbare om det är allt du någonsin vill ha, men om du sedan ska behöva lära dig om de andra aspekterna, skulle du vara mycket bättre att läsa dem första gången än att behöva göra din sökning igen och hitta webbplatsen för att prata om det.

Om du inte är säker på om du kommer att behöva de andra kolumnvärdena i framtiden, är det din uppmaning att göra som utvecklare i vilket fall det är mer troligt.

Allt beror på vad din applikation är, vilken data du har, hur du använder den och hur viktig prestanda egentligen är. är till dig.



  1. Hur man ändrar återställningsmodellen för en SQL Server-databas med T-SQL

  2. MySQL-gruppera efter datum och antal inklusive saknade datum

  3. SQL för att hitta det första icke-numeriska tecknet i en sträng

  4. Långsam fråga när du använder ORDER BY