|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : avril 2004 Messages : 284 ![]() |
Bonjour,
J'ai créé une base très simple, l'idée est la suivante : J'ai plusieurs fichiers de 6 000 000 de lignes chacun, chaque fichier est constitué de coordonnées X, Y et d'une valeur associée. Chaque couple X, Y est donc associé à plusieurs fichier, et cette relation possède une valeur : ![]() J'ai saisi pour l'instant 2 fichiers, soit 13 000 000 d'entités pour la table files_has_coordinates. Je veux rechercher pour un fichier donné la valeur associée à certaines coordonnées. Code :
Les requêtes sont assez lentes (entre 3 et 10 secondes pour chaque couple) et j'ai un nombre très important de requêtes à effectuer ![]() Petite question: la contrainte UNIQUE sur (coord_x, coord_y) crée-t'elle bien un index sur le couple ? Info config: mon PC est récent (4 mois) sous Ubuntu Feisty et PostgreSQL 8.2. Verriez-vous un problème dans la construction des tables et / ou des contraintes par rapport au besoin, auriez-vous des conseils sur l'optimisation des requêtes ? En vous remerciant, C. Tobini |
||
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
À ma connaissnce, une contrainte UNIQUE ajoute automatiquement un index unique. C'est d'ailleurs ce qui permet à PG de s'assurer de l'unicité des valeurs de la colonne concernée.
Tu peux savoir si PG utilise un index en lançant un Il serait d'ailleurs intéressant que tu nous fournisses cette information pour qu'on puisse mieux t'aider. Il serait aussi bien qu'on sache comme tu as configuré PG. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com