sql >> Database >  >> RDS >> Mysql

Is het slecht voor de prestaties om alle kolommen te selecteren?

Het probleem hier is niet zozeer een kwestie van de databaseserver, maar alleen van de netwerkcommunicatie. Door alle kolommen tegelijk te selecteren, laat u de server alle kolommen tegelijk naar u terugkeren. Wat betreft zorgen over IO en zo, die worden netjes behandeld in de vraag en het antwoord dat @Karamba gaf in een opmerking:select * vs select column . Maar voor de meeste toepassingen in de echte wereld (en ik gebruik 'toepassingen' in alle opzichten), is de grootste zorg alleen het netwerkverkeer en hoe lang het duurt om de gegevens te serialiseren, verzenden en vervolgens te deserialiseren. Hoewel het antwoord eigenlijk hoe dan ook hetzelfde is.

Dus het terugtrekken van alle kolommen is geweldig, als u van plan bent ze allemaal te gebruiken, maar dat kan veel extra gegevensoverdracht zijn, vooral als u bijvoorbeeld lange reeksen in uw kolommen opslaat. In veel gevallen is het verschil natuurlijk niet waarneembaar en is het meestal een kwestie van principe. Niet allemaal, maar een aanzienlijke meerderheid.

Het is eigenlijk gewoon een afweging tussen je eerder genoemde luiheid (en geloof me, dat voelen we allemaal zo) nu en hoe belangrijk prestaties echt is.

Dat gezegd hebbende, als je doe van plan bent om alle kolomwaarden te gebruiken, kunt u ze veel beter allemaal tegelijk terughalen dan dat u een heleboel vragen moet indienen.

Zie het als een zoekopdracht op internet:u doet uw zoekopdracht, u vindt uw pagina en u hebt maar één detail nodig. Je zou de hele pagina kunnen lezen en alles over het onderwerp weten, of je kunt gewoon naar het gedeelte springen over wat je zoekt en klaar zijn. Dat laatste is een stuk sneller als dat alles is wat je ooit wilt, maar als je dan de andere aspecten moet leren, kun je ze veel beter de eerste keer lezen dan opnieuw te moeten zoeken en te vinden de site om erover te praten.

Als u niet zeker weet of u de andere kolomwaarden in de toekomst nodig zult hebben, dan is dat uw oproep als ontwikkelaar, in welk geval de kans groter is.

Het hangt allemaal af van wat uw toepassing is, wat uw gegevens zijn, hoe u deze gebruikt en hoe belangrijk prestaties echt zijn. is voor jou.



  1. Hoe Top with Ties te gebruiken in SQL Server - SQL Server / TSQL Tutorial Part 114

  2. Veiligheidsnetten

  3. Een manier om SQLBulkCopy in te voegen of bij te werken als deze bestaat?

  4. MySQL NIET IN-query