Нужен Postgresql гуру

Цена договорная • безналичный расчёт, электронные деньги
23 декабря 2017, 13:25 • 1 отклик • 22 просмотра
Нам нужно сделать так, чтобы explain (или может есть какой-то другой способ) на всех серверах показывал одну и туже стоимость запроса, если в таблицах одинаковые данные. При этом производительность не должна пострадать.


Сейчас показывает вот такое:


eg2=# EXPLAIN (FORMAT JSON) select * from "3_keys";


QUERY PLAN


----------------------------------


[ +


{ +


"Plan": { +


"Node Type": "Seq Scan", +


"Parallel Aware": false, +


"Relation Name": "3_keys",+


"Alias": "3_keys", +


"Startup Cost": 0.00, +


"Total Cost": 18.60, +


"Plan Rows": 860, +


"Plan Width": 66 +


} +


} +


]


(1 row)




eg2=# EXPLAIN (FORMAT JSON) select * from "1_keys";


QUERY PLAN


----------------------------------


[ +


{ +


"Plan": { +


"Node Type": "Seq Scan", +


"Parallel Aware": false, +


"Relation Name": "1_keys",+


"Alias": "1_keys", +


"Startup Cost": 0.00, +


"Total Cost": 186.02, +


"Plan Rows": 2, +


"Plan Width": 54 +


} +


} +


]


(1 row)




eg2=# SELECT * FROM pg_indexes WHERE tablename = '3_keys';


schemaname | tablename | indexname | tablespace | indexdef


------------+-----------+-------------+------------+----------------------------------------------------------------


public | 3_keys | 3_keys_pkey | | CREATE UNIQUE INDEX "3_keys_pkey" ON "3_keys" USING btree (id)


(1 row)




eg2=# SELECT * FROM pg_indexes WHERE tablename = '1_keys';


schemaname | tablename | indexname | tablespace | indexdef


------------+-----------+-------------+------------+----------------------------------------------------------------


public | 1_keys | 1_keys_pkey | | CREATE UNIQUE INDEX "1_keys_pkey" ON "1_keys" USING btree (id)


(1 row)




eg2=# select * from "1_keys";


id | pub | amount


----+-----+--------


(0 rows)




eg2=# select * from "3_keys";


id | pub | amount


----+-----+--------


(0 rows)




eg2=# \d "1_keys"


Table "public.1_keys"


Column | Type | Modifiers


--------+---------------+-------------------------------


id | bigint | not null default '0'::bigint


pub | bytea | not null default '\x'::bytea


amount | numeric(30,0) | not null default '0'::numeric


Indexes:


"1_keys_pkey" PRIMARY KEY, btree (id)




eg2=# \d "3_keys"


Table "public.3_keys"


Column | Type | Modifiers


--------+---------------+-------------------------------


id | bigint | not null default '0'::bigint


pub | bytea | not null default '\x'::bytea


amount | numeric(30,0) | not null default '0'::numeric


Indexes:


"3_keys_pkey" PRIMARY KEY, btree (id)