2012-12-08 3 views
1

J'ai un projet qui a une grande base de données, je veux savoir quel est le meilleur design, une base de données avec 5 tables ou 5 bases de données avec 1 table? Ma base de données est exécutée sur le serveur, si je veux étendre ma base de données à plus d'un serveur, est-ce que cela change pour répondre à cette question?SQL Server comparer méthode de conception

+2

Je vote toujours pour moins de base de données - dans une base de données ** unique **, vous pouvez configurer l'intégrité référentielle en utilisant des contraintes de clé étrangère; cela ne fonctionne pas à travers les limites de la base de données ... il semble aussi beaucoup plus facile d'accéder et de gérer ** une base de données ** avec cinq tables - au lieu d'avoir cinq bases de données séparées .... –

+2

@marc, je suis d'accord avec vous y. Compliquer le déploiement serait généralement la dernière ligne de défense concernant la performance de la base de données. D'après mon expérience, les bases de données ne fonctionnent généralement pas bien car elles ne sont pas indexées correctement ou le serveur n'a pas assez de puissance pour gérer la charge. –

Répondre

4

En règle générale, une base de données ne fonctionnera pas mieux simplement parce qu'elle ne possède qu'une seule table. En outre, le concept de sharding et ses améliorations de performance (ou pas) sont beaucoup trop loin pour ce forum. Donc, pour vous simplifier la vie, créez une base de données avec cinq tables et optimisez ces tables correctement. Construire des index où ils sont nécessaires en fonction de la façon dont vous interrogez la base de données. Construire des index couverts si possible. Et ne pas sur index si l'application est intensive en écriture. Rappelez-vous, l'optimisation d'une base de données est beaucoup plus complexe qu'un modèle de conception général et ne peut pas être bien faite par une source extérieure sans trop d'informations.

+0

merci, pourrais-je avoir plus d'un serveur avec une base de données? (Pour accélérer ma requête) – Mahyar

+2

@Mahyar, vous essayez encore de compliquer le déploiement sans encore comprendre s'il y aura ou ** même ** des performances problèmes qui peuvent être résolus comme ça. En bref, ce que vous venez de proposer est quelque chose qui nécessiterait une réplication entre deux serveurs SQL et il y a un * lot * de complexités liées à cela. *** Construire une base de données, sur un serveur, et quand il est en direct dépanner les problèmes de performance. Tous les problèmes peuvent probablement être résolus sans compliquer le déploiement. *** –

Questions connexes