2017-06-14 2 views
0

Ma table a un ID utilisateur (clé primaire) et sa relation avec les autres utilisateurs, de sorte que la table contient plusieurs lignes pour la clé primaire. En ce moment j'ai 500k autour des utilisateurs dans le système, donc ensemble, ceux-ci ont généré des millions de lignes dans cette table. La recherche et les autres opérations sont devenues si lentes que j'ai vérifié le partitionnement mysql, donc je veux comprendre comment je peux utiliser le partitionnement pour ce scénario afin que la requête s'exécute uniquement sur cet identifiant (comme dans toutes les requêtes identifiant de l'utilisateur en condition).partitions à base de clés dans mysql pour des millions de lignes

+0

Avant de partitionner, avez-vous joué assez avec des index? Ils pourraient aussi faire l'affaire –

+0

@PrabhatG J'ai vu des index mais le partitionnement a attiré mon attention comme si ça fonctionnait je l'utiliserai aussi pour d'autres tables et DB. –

+0

Veuillez indiquer 'SHOW CREATE TABLE' et le' SELECT' qui semble avoir besoin d'un partitionnement. Je vais vous montrer de façon probante comment obtenir des performances aussi bonnes ou meilleures que possible sans partitionnement. –

Répondre

1

Avant d'examiner les partitions, avez-vous envisagé d'ajouter des index? Vérifiez votre planificateur de requêtes pour voir s'il effectue une analyse de table complète.

+0

comment est-ce une solution, plutôt commenter? –

+0

@tomjen J'ai vérifié l'indexation mais le partitionnement est meilleur. À l'heure actuelle, il effectue une analyse complète de la table, ce qui explique pourquoi je suis plus intéressé par le partitionnement. –