On m'a demandé dans mon travail de violer plusieurs fois la première forme normale (répétition de groupes sur plusieurs colonnes, en utilisant des valeurs vides / nulles), "pour la puissance de traitement informatique". En un mot, une table "étudiant" devrait avoir au moins 8 champs vides (par exemple téléphones: téléphone1, téléphone2, téléphone3 ...) au lieu de ma suggestion - une table "téléphone" qui contient un numéro de téléphone (et éventuellement d'autres métadonnées) et la clé étrangère est le numéro d'identification de l'étudiant. Mon patron dit qu'il vaut mieux les stocker de cette façon car "il y a moins de cycles CPU et c'est important dans les plateformes web", au lieu d'utiliser des relations. Je dis que, dans le pire des cas, c'est négligeable.
Dans cet exemple, l'utilisation de relations (supposons que les tables sont remplies de nombreux enregistrements dans une webapp de taille moyenne) est considérablement plus lente que l'utilisation de ce type de schéma de table?
la source
Réponses:
Je ne vois pas comment quelqu'un pourrait faire une telle déclaration sans avoir des faits réels pour la soutenir. Si vos requêtes sont liées au processeur, vous devez rechercher des moyens de réduire ce goulot d'étranglement.
Il semble que votre patron pense qu'une base de données dénormalisée fonctionnera mieux, mais je ne connais pas suffisamment votre application pour dire si c'est vrai ou non. Quel sera le nombre attendu de suppressions, mises à jour et insertions pour cette table?
Je m'attendrais à ce qu'une telle conception dénormalisée puisse entraîner une réduction du temps processeur, mais je m'attendrais à ce que les E / S de votre disque augmentent. Et les lectures physiques à partir du disque coûteront beaucoup plus cher qu'un cycle CPU, alors peut-être que votre patron a une métrique très spécifique à respecter (CPU) et par conséquent veut une conception très spécifique? Si c'est le cas, je construirais simplement ce qui est demandé et conserverais les mesures sur le coût du processeur pour les requêtes en cours d'exécution. Si vous constatez une augmentation du temps, vous pouvez proposer des modifications de conception.
En fait, c'est probablement une bonne idée d'obtenir une liste de toutes les mesures que votre patron veut voir et de les suivre au fil du temps.
la source