2010-11-11 14 views
0

Si j'ai une table où certains champs sont toujours recherchés en utilisant un opérateur d'égalité (où id = 5) serait-il préférable d'utiliser un index de hachage. J'ai lu que les index Hash sont meilleurs à ce genre de requête mais ne conviennent pas pour les requêtes de distance. Devrais-je utiliser un index de hachage dans ce cas.? Y a-t-il des inconvénients à hacher pour ce scénario.dois-je utiliser un index de hachage pour les recherches d'égalité dans mysql

Répondre

1

Vous ne pouvez pas utiliser les index HASH avec MyISAM ou InnoDB. Donc, si vous utilisez le stockage MEMORY ou NDB (Cluster) (ce qui n'est probablement pas le cas), vous pouvez utiliser les index HASH. Les deux sont plus souples (vous pouvez utiliser pour récupérer les données triées sur la clé d'index, vous pouvez utiliser pour résoudre les requêtes à distance) donc, sauf si vous avez un cas très spécifique (requête de recherche EQUALITY-ONLY, sur un stockage spécial) allez juste pour BTree.

0

Vous ne pouvez pas utiliser un index de hachage sur certains moteurs, y compris MyISAM et InnoDB. En outre, il n'est pas évident que vous obteniez une amélioration des performances pour les très petites clés d'index, telles que les valeurs d'entier unique (par opposition aux index multi-colonnes ou aux indices de chaîne).