Teníamos una tabla con alrededor de 30 000 filas que (por un motivo arquitectónico específico no relacionado) tenían UUID almacenados en un campo de texto e indexados. Noté que el rendimiento de la consulta era más lento de lo que esperaba. Creé una nueva columna de UUID, la copié en el texto de la clave principal de uuid y la comparé a continuación. 2,652 ms frente a 0,029 ms. ¡Menuda diferencia!
-- With text index
QUERY PLAN
Index Scan using tmptable_pkey on tmptable (cost=0.41..1024.34 rows=1 width=1797) (actual time=0.183..2.632 rows=1 loops=1)
Index Cond: (primarykey = '755ad490-9a34-4c9f-8027-45fa37632b04'::text)
Planning time: 0.121 ms
Execution time: 2.652 ms
-- With a uuid index
QUERY PLAN
Index Scan using idx_tmptable on tmptable (cost=0.29..2.51 rows=1 width=1797) (actual time=0.012..0.013 rows=1 loops=1)
Index Cond: (uuidkey = '755ad490-9a34-4c9f-8027-45fa37632b04'::uuid)
Planning time: 0.109 ms
Execution time: 0.029 ms