J'ai remarqué sur MySQLWorkbench que vous pouvez choisir comment stocker vos index avant de procéder à l'ingénierie de votre conception. Les types de stockage sont:
En recherchant cela, j'ai trouvé des informations qui me dépassaient, alors je cherche des informations pratiques sur la différence entre celles-ci et/ou pourquoi vous devriez choisir l'une plutôt qu'une autre.
De plus, je n'ai jamais choisi de type de stockage auparavant, donc je suppose que MySQL choisit un type de stockage par défaut (BTREE?)
BTree (en fait B * Tree) est une carte clé-valeur ordonnée efficace. Sens:
ex. "tous les événements entre 9h et 17h", "noms commençant par 'R'"
RTree est un spatial index
Ce qui signifie qu'il peut identifier rapidement les valeurs de close
en 2 dimensions ou plus. Il est utilisé dans les bases de données géographiques pour des requêtes telles que:
tous les points à moins de X mètres de (x, y)
Hash est une carte de valeurs-clés non ordonnée. Il est encore plus efficace qu'un BTree: O(1)
au lieu de O(log n)
.
Mais il n'a aucun concept d'ordre, il ne peut donc pas être utilisé pour des opérations de tri ou pour récupérer des plages.
En remarque, à l'origine, MySQL n'autorisait que les index Hash sur les tables MEMORY
; mais je ne sais pas si cela a changé au fil des ans.