Vous n'êtes pas identifié(e).
j'ai une table de 59000000 entrées, indexer un des champ durera combien de temps svp ? ca bloque toute la base ou juste la table ?
Hors ligne
Ça bloquera juste la table. Par contre, il est impossible de vous dire combien de temps ça va durer, ça dépend de trop de paramètres.
Guillaume.
Hors ligne
merci gleu,
tu peux pas me donner juste une idée stp ? des minutes ? des heures ? de quels paramètres ça dépend ?
merci d'avance
Hors ligne
Impossible, c'est trop dépendant de vos données, de votre serveur (disque, processeur, mémoire), des réglages. Par contre, suivant la version de postgres, vous avez CREATE INDEX … CONCURRENTLY, qui permet de créer l'index sans bloquer les autres opérations (mais est plus long, ne peut pas être fait dans une transaction, et peut échouer).
Marc.
Hors ligne
Merci Marc
je vais tenter CREATE INDEX … CONCURRENTLY
Hors ligne
encore une question.
un champ appartenant à une clé primaire multiple est indexé. mais un SELECT sur ce champ a les mêmes performances que si je crée un index sséparé ?
Hors ligne
Non. L'index est forcément plus gros, donc moins facilement en mémoire. Si en plus la colonne en question n'est pas la première, l'index ne sera jamais utilisé.
Guillaume.
Hors ligne
Merci Guillaume
Une dernière pour la route...
une colonne avec la contrainte UNIQUE est-elle indexée si elle fait pas partie de la clé primaire ?
Hors ligne
Si elle fait partie de la clé primaire, elle est forcément indexée et unique de toutes façons.
Marc.
Hors ligne
non elle fait pas partie de la clé primaire, mais elle a la contrainte UNIQUE
Hors ligne
Ah, si elle fait PAS partie de la clé primaire…
Oui, la contrainte UNIQUE crée un index.
Marc.
Hors ligne