pgcrypto и заказ по - PullRequest
       16

pgcrypto и заказ по

0 голосов
/ 22 мая 2018

Я хочу ЗАКАЗАТЬ ПО некоторому столбцу в таком запросе:

SELECT "created", 
        pgp_pub_decrypt(username, dearmor('-----BEGIN PGP PRIVATE KEY BLOCK----- XXXXXXX -----END PGP PRIVATE KEY BLOCK-----'), 'password') AS "username" 
FROM "users" 
ORDER BY created

Какой бы столбец я ни использовал для сортировки, его вычисление занимает очень много времени.Я знаю, что могу обернуть этот выбор в другой и выполнить сортировку там, но это не может быть решением по другим причинам.Почему это занимает так много времени?Я что-то не так делаю?

Это план запроса:

QUERY PLAN
-----------------------------------------------------------------------
 Sort  (cost=1261.92..1273.00 rows=4433 width=40)
  Sort Key: created
   ->  Seq Scan on users  (cost=0.00..993.41 rows=4433 width=40)

Результат EXPLAIN (анализ, буферы):

QUERY PLAN
--------------------------------------------------------------------------------------------------------------------
 Sort  (cost=1261.92..1273.00 rows=4433 width=40) (actual time=313515.489..313516.446 rows=4433 loops=1)
   Sort Key: created
   Sort Method: quicksort  Memory: 531kB
   Buffers: shared hit=2037
   ->  Seq Scan on users  (cost=0.00..993.41 rows=4433 width=40) (actual time=70.300..313499.510 rows=4433 loops=1)
         Buffers: shared hit=2037
 Planning time: 0.115 ms
 Execution time: 313517.322 ms
...