2009-12-02 3 views
1

J'utilise MySQL pour stocker ma relation parent-enfant. Les données sont concentrées dans une table et il est vraiment élégant par conception.sharding une base de données avec la structure de données hiérarchique

Je n'ai aucun problème à traiter; Cependant, la taille de la table a considérablement augmenté. Je voudrais partitionner ou utiliser certaines techniques pour améliorer les performances de mes requêtes (et jointures). Comment je le ferais?

Des pointeurs seraient appréciés.

Merci, R

+0

Vos requêtes sont-elles lentes ou avez-vous besoin d'effectuer beaucoup de requêtes? Utilisez-vous les index de manière optimale (au meilleur de votre connaissance)? –

+0

En supposant que la division de base de données peut être basée sur un champ sémantique. Pour chaque domaine d'activité, il existe très peu de choix pour ce domaine. Et c'est probablement l'identifiant du compte d'un client. –

Répondre

1

Il n'y a pas assez d'informations dans ce post pour vous donner une bonne réponse. La première chose à savoir est la structure de la table. Avez-vous défini des index non clusterisés ou est-ce simplement un index clusterisé?

Votre application qui utilise cette base de données, que fait-elle avec les données?

En outre, recherchez-vous un champ de nom ou une date spécifique? Si oui, ceux-ci pourraient être des candidats pour un type d'index.

La première chose à surveiller est index.

0

Je pense que vous aurez besoin d'une aide plus avancée si votre produit est si grand. dbShards est un bon endroit pour commencer. Ils vous aideront à concevoir une stratégie de fragmentation de vos données et pourront facilement partager toutes les tables qui en ont besoin. Si votre table devient trop grande, le sharding n'est pas un mauvais choix. Je voudrais vérifier dbShards. Cela pourrait bien fonctionner pour cette situation.

Questions connexes