resalut, ok j'avoue
que je me suis trompé en lisant la doc (oui je l'ai lu
)
voila je vous donne des snapshot d'une ANALYSE d'un SELECT avant et aprés la création d'index et apparament, l'index a ralentit la selection :
voici mon SELECT :
SELECT "MsgId","Content" as content,"TimeCreated" as tc,"SOA" as oa FROM sms_mo WHERE ((LOWER("Content") LIKE 'rm%')) AND (("DA"='87000')) ORDER BY "MsgId" ASC
Avant :
Sort (cost=10633.90..10633.92 rows=6 width=99)
Sort Key: "MsgId"
-> Seq Scan on sms_mo (cost=0.00..10633.83 rows=6 width=99)
Filter: ((lower("Content") ~~ 'rm%'::text) AND (("DA")::text = '87000'::text))
4 row(s)
Total runtime: 83.650 ms
maintenant je fais :
CREATE INDEX sms_mo_content ON sms_mo USING BTREE (LOWER("Content"));
et revoila mon select :
Sort (cost=8241.19..8241.22 rows=12 width=99)
Sort Key: "MsgId"
-> Index Scan using sms_mo_content on sms_mo (cost=0.01..8240.97 rows=12 width=99)
Index Cond: ((lower("Content") >= 'rm'::text) AND (lower("Content") < 'rn'::text))
Filter: ((lower("Content") ~~ 'rm%'::text) AND (("DA")::text = '87000'::text))
5 row(s)
Total runtime: 211.154 ms
alors je suis passé de 83.650 ms à 211.154 ms ce qui est enorme.
Partager