Quantcast
Channel: Question and Answer » postgresql
Viewing all articles
Browse latest Browse all 1138

Run query faster, what index to use

$
0
0

I have a table with 85M rows :

CREATE TABLE emissions_totales ( 
"schema_source" varchar(150), 
"snap" varchar(20), 
"gid" varchar(255), 
"polluant" varchar(50), 
"emi" float8, 
"numreg" varchar(3), 
"unites" varchar(60), 
"annee_ref" varchar(4), 
"type_source_n1" varchar(255), 
"type_source_n2" varchar(255), 
"type_source_n3" varchar(255), 
"napfue" varchar(15), 
"naf_rev2" varchar(10), 
"entite" varchar(255), 
"id" int4)

but a query like this one:

SELECT
    numreg,
    annee_ref,
    type_source_n1,
    polluant,
    unites,
    sum(emi) as emi
FROM emissions_synthese.emissions_totales
WHERE schema_source='residentiel'
GROUP BY
    numreg,
    annee_ref,
    type_source_n1,
    polluant,
    unites;

takes more than 3 hours to perform. What is the best way to make indexes? Do I have to make unique index on schema_source, numreg, annee_ref, type_source_n1, polluant and unites or a multicolumn index?

I have modified the postgresql.conf file by reading various sites, do I have to change something?

shared_buffers = 956MB
work_mem = 5MB
maintenance_work_mem = 128MB
checkpoint_segments = 64
checkpoint_timeout = 5min
checkpoint_completion_target = 0.9
effective_cache_size = 2304MB

(postgresql 8.4 on Debian Squeeze, 3.0 Go RAM, 2 Intel Xeon E5345 CPU)


Viewing all articles
Browse latest Browse all 1138

Latest Images

Trending Articles



Latest Images