PostgreSQL:针对带有时区列的时间戳的SELECT查询提高了性能

PostgreSQL:针对带有时区列的时间戳的SELECT查询提高了性能,postgresql,indexing,database-performance,Postgresql,Indexing,Database Performance,我的表中有100多万行,在日期范围之间搜索时,我的SELECT查询速度很慢。 所以,我有下表 CREATE TABLE public.main_transaction ( id integer NOT NULL DEFAULT nextval('main_transaction_id_seq'::regclass), description character varying(255) NOT NULL, transaction_type character varying(18)

我的表中有100多万行,在日期范围之间搜索时,我的
SELECT
查询速度很慢。 所以,我有下表

CREATE TABLE public.main_transaction
(
  id integer NOT NULL DEFAULT nextval('main_transaction_id_seq'::regclass),
  description character varying(255) NOT NULL,
  transaction_type character varying(18) NOT NULL,
  pub_date timestamp with time zone NOT NULL,
  ...
)
上表有34列,包括3个
外键
s和
我想加快以下查询的速度

SELECT * FROM main_transaction 
WHERE 
   pub_date >= '2018-01-01'
   AND pub_date <'2018-01-08'
从主事务中选择*
哪里
发布日期>='2018-01-01'

和发布日期执行计划,请问您有什么索引定义?@Vao Tsun“主要交易t上的序列扫描(成本=0.00..74437.33行=28974宽度=1455)”“过滤器:((发布日期>='2018-01-01 00:00:00+05':带时区的时间戳)和(发布日期<'2018-01-08 00:00:00+05':带时区的时间戳))”@Ben请参考以下链接了解我的表格,Laurenz建议在你的参考答案中创建索引-你的意思是它没有帮助?你怎么查到的?分析表格并检查计划?。。
Seq Scan on main_transaction t (cost=0.00..74437.33 rows=28974 width=1455)
  Filter: ((pub_date >= '2018-01-01 00:00:00+05'::timestamp with time zone) AND (pub_date < '2018-01-08 00:00:00+05'::timestamp with time zone))