2009-07-06 8 views
5

Mysql utilise B + tree pour implémenter des index. Disons que mon index primaire est de type (nom, âge, ville). Quelqu'un peut-il jeter de la lumière sur la façon dont Mysql implémente un arbre B + sur ces types de clés? Mon intuition est qu'il traite l'entier en tant que clé et qu'il le traite comme un ordre partiel. Par exemple:Mysql B + Implémentation en arbre

(Jean, 24, New Jersey) < (Jean, 24, New York) < (John, 25 ans, New Jersey) < (Jean, 25, New York)

Répondre

4

(John, 24, New Jersey) < (Jean, 24, New York) < (John, 25 ans, New Jersey) < (Jean, 25, New York)

Oui, c'est pourquoi il est important dans lequel vous commandez posez sur les colonnes dans une clé.

La clé ne sera d'aucune aide si vous ne recherchez pas les valeurs qui peuvent être satisfaites en regardant le début de celle-ci - par ex. Lorsque vous filtrez pour age et/ou city, mais pas pour name, la clé ne peut pas être utilisée. D'un autre côté, si vous souhaitez uniquement filtrer name, la clé sera utilisée.