Mysql
 sql >> Base de données >  >> RDS >> Mysql

Est-ce mauvais pour les performances de sélectionner toutes les colonnes ?

Le problème ici n'est pas tant une question de serveur de base de données que de communication réseau. En sélectionnant toutes les colonnes à la fois, vous dites au serveur de vous revenir, toutes les colonnes à la fois. En ce qui concerne les préoccupations concernant IO et tout cela, celles-ci sont bien traitées dans la question et la réponse que @Karamba a données dans un commentaire :sélectionner * vs sélectionner la colonne . Mais pour la plupart des applications du monde réel (et j'utilise des "applications" dans tous les sens), la principale préoccupation est simplement le trafic réseau et le temps qu'il faut pour sérialiser, transmettre, puis désérialiser les données. Bien qu'en réalité, la réponse soit la même dans les deux cas.

Donc, retirer toutes les colonnes est génial, si vous avez l'intention de toutes les utiliser, mais cela peut représenter beaucoup de transfert de données supplémentaire, en particulier si vous stockez, par exemple, de longues chaînes dans vos colonnes. Dans de nombreux cas, bien sûr, la différence sera indétectable et n'est surtout qu'une question de principe. Pas tous, mais une majorité significative.

C'est vraiment juste un compromis entre votre paresse susmentionnée (et croyez-moi, nous ressentons tous cela) maintenant et l'importance des performances vraiment est.

Cela dit, si vous faites avez l'intention d'utiliser toutes les valeurs de colonne, vous feriez bien mieux de les récupérer toutes en même temps, alors vous remplissez un tas de requêtes.

Pensez-y comme si vous faisiez une recherche sur le Web :vous effectuez votre recherche, vous trouvez votre page et vous n'avez besoin que d'un détail. Vous pouvez lire la page entière et tout savoir sur le sujet, ou vous pouvez simplement passer à la partie sur ce que vous recherchez et être fait. Ce dernier est beaucoup plus rapide si c'est tout ce que vous voulez, mais si vous devez ensuite en apprendre davantage sur les autres aspects, vous feriez mieux de les lire la première fois que d'avoir à refaire votre recherche et à trouver le site pour en parler.

Si vous n'êtes pas sûr d'avoir besoin des autres valeurs de colonne à l'avenir, c'est votre appel à faire en tant que développeur pour lequel le cas est le plus probable.

Tout dépend de la nature de votre application, de vos données, de la façon dont vous les utilisez et de l'importance des performances réellement est pour vous.