par
Hubert Roksor » 01 nov. 2007, 01:23
Si c'est par rapport à entier, varchar fera souvent des clés plus petites donc plus faciles à parcourrir.
Euh, un INT prend seulement 4 octets, je doute qu'aucun VARCHAR puisse faire plus court que ça, c'est pourquoi les INT sont plus rapides pour à peu près toutes les opérations. Ou alors on ne parle pas de la même chose ? Peut-être avec des données plutôt redondantes grâce à la compression de préfixe le stockage pourrait être moindre, mais pour l'exécution je préfèrerais un INT.
Concernant les indices partiels, s'il s'agit d'une clé primaire ça veut dire que les
n premiers caractères ne pourront être identiques, e.g. si l'index porte sur les 4 premiers caractères on ne pourra pas avoir "abcd1" et "abcd2".
Cela à t'il une incidence sur l'indexation du champ définit comme tel ? La rapidité d'accès aux données dans le cas de clés étrangères (jointures) ?
Cela a une très grande incidence et dépend étroitement du type de données/requêtes, mais comment répondre à ce genre de question très vague avec si peu d'informations. Pire encore,
pourquoi répondre à une question si vague ? Si tu ne prends pas la peine d'expliquer ton problème je doute que ça motive quiconque de s'en occuper à ta place.
[quote="Sékiltoyai"]Si c'est par rapport à entier, varchar fera souvent des clés plus petites donc plus faciles à parcourrir.[/quote]
Euh, un INT prend seulement 4 octets, je doute qu'aucun VARCHAR puisse faire plus court que ça, c'est pourquoi les INT sont plus rapides pour à peu près toutes les opérations. Ou alors on ne parle pas de la même chose ? Peut-être avec des données plutôt redondantes grâce à la compression de préfixe le stockage pourrait être moindre, mais pour l'exécution je préfèrerais un INT.
Concernant les indices partiels, s'il s'agit d'une clé primaire ça veut dire que les [i]n[/i] premiers caractères ne pourront être identiques, e.g. si l'index porte sur les 4 premiers caractères on ne pourra pas avoir "abcd1" et "abcd2".
[quote="Anonymous"]Cela à t'il une incidence sur l'indexation du champ définit comme tel ? La rapidité d'accès aux données dans le cas de clés étrangères (jointures) ?[/quote]
Cela a une très grande incidence et dépend étroitement du type de données/requêtes, mais comment répondre à ce genre de question très vague avec si peu d'informations. Pire encore, [i]pourquoi[/i] répondre à une question si vague ? Si tu ne prends pas la peine d'expliquer ton problème je doute que ça motive quiconque de s'en occuper à ta place.