我创建了以下表和索引:
CREATE TABLE cdc_auth_user ( cdc_auth_user_id bigint NOT NULL DEFAULT nextval('cdc_auth_user_id_seq'::regclass),cdc_timestamp timestamp without time zone DEFAULT ('Now'::text)::timestamp without time zone,cdc_operation text,id integer,username character varying(30) ); CREATE INDEX idx_cdc_auth_user_cdc_timestamp ON cdc_auth_user USING btree (cdc_timestamp);
但是,当我使用timestamp字段执行select时,索引将被忽略,我的查询将花费大约10秒的时间返回:
EXPLAIN SELECT * FROM cdc_auth_user WHERE cdc_timestamp BETWEEN '1900/02/24 12:12:34.818' AND '2012/02/24 12:17:45.963'; Seq Scan on cdc_auth_user (cost=0.00..1089.05 rows=30003 width=126) Filter: ((cdc_timestamp >= '1900-02-24 12:12:34.818'::timestamp without time zone) AND (cdc_timestamp <= '2012-02-24 12:17:45.963'::timestamp without time zone))
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。