请教PostgreSQL高手,一个limit问题。
表test2
CREATE TABLE test2
(
"ItemID" character(32) NOT NULL,
"Price" numeric(10,2),
CONSTRAINT test2_pkey1 PRIMARY KEY ("ItemID")
)
WITH (OIDS=FALSE);
并且以Price字段创建了索引:
CREATE INDEX "idx_test2_Price"
ON test2
USING btree
("Price");
test2表有120万条数据,执行以下语句:
select "ItemID" from test2 where "ItemID" in
(
'1abcdef0000000000000000111111111',
'1abcdef00000000abde0000111113115',
'1abcdef0000000000000000111111111',
'1abcdef00000000abde0000111113115',
'1abcdef0000000000000000111111111',
'1abcdef00000000abde0000111113115',.....-- >此处数据为12000个"ItemID"组成的字符串;
)
limit 20;
查询执行需要耗时 241340ms;如果换成 limit149,也是23578ms;
但是如果把limit 20 换成limit 150 就仅仅需要743ms;!!!!!!!!!!!!
请教高手,这是怎么回事,怎么处理这个问题,
急急急!!!!!!!!!
急急急!!!!!!!!!
急急急!!!!!!!!!