Trop nombreux champs = baisse de perfs?

Trop nombreux champs = baisse de perfs? - SQL/NoSQL - Programmation

Marsh Posté le 25-07-2004 à 00:04:53    

Hello,  
 
Je suis entrain de créer une table MySQL qui contiendra ~ 100 champs. Je sais que MySQL pourra gérer une table avec 100 champs mais je me demande si un trop gros nombre de champs peut entrainer une baisse de perfs?
 
J'imagine que forcément oui mais peut-être est-ce négligeable?
j'ai besoin de bonne perfs dans mon application donc je préfère éviter les mauvaises surprises. :D  
 
Si vous avez des infos là-dessus, je suis preneur :)
 
merci, bonne soirée


Message édité par Limit le 25-07-2004 à 00:05:01
Reply

Marsh Posté le 25-07-2004 à 00:04:53   

Reply

Marsh Posté le 25-07-2004 à 11:43:26    

je pense pas que ça pose de problème ;)
 
Comme toujours, faudra juste optimiser les requêtes accédant à la table, et la structure des la table (index, etc.).
 
(exemple : la table la plus importante de tout système de facturation de mobiles - domaine dans lequel je travaille - est celle qui contient les informations sur les appels téléphoniques valorisés, en général cette table fait dans les 100 champs ;) )

Reply

Marsh Posté le 25-07-2004 à 20:27:50    

Tu perdra pas mal de perfs si tu lis de gros voulmes de donéées (entend par la si une requête retourne beaucoup de champs, même si tu ne retournes que quelques colonnes)
 
En effet, les données sont écrites physiquement à la suite. Entends par là que si la taille totale d'une ligne fait mettons 5000 bytes ce seront 5000 bytes à la suite qui seront écrits dans le fichier pour chaque ligne.
 
Ainsi, imagine que tu récupère 2000 lignes, en imaginant que les données sont retournées de façon séquencielles (dans l'ordre de stockage dans le fichier) ce qui est peu probable, la tête du disque va devoir parcourir 5000 x 2000 bytes pour rrtourner les infos, ce qui commmence à faire beaucoup pour le cache disque.
 
Ceci-dit, je doute que ce soit vraiment notable, à moins que tu ait beaucoup d'accès concurrents qui font plusieurs requêtes à la fois.
 
Ceci-dit, je me demande ce que tu veux stocker qui nécessite autant de colonnes. A mon avis, quelques tables de plus avec des jointures de types 0,1 s'impose, car je doute que les 100 champs soient remplis pour chaque ligne.

Reply

Marsh Posté le 25-07-2004 à 20:54:52    

de toute façon, s'il ne veut retourner que quelques colonnes parmi les 100, et souvent les mêmes, c'est que le modèle de données n'est pas adapté ... et que cette grosse table devrait être découpée en entités plus petites.
 
Si au contraire, toute l'info des 100+ champs sont renvoyées dans la plupart des requêtes dans cette table, alors c'est ok ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed