我有PostgreSQL的如下表:
CREATE TABLE index_test
(
id int PRIMARY KEY NOT NULL,
text varchar(2048) NOT NULL,
last_modified timestamp NOT NULL,
value int,
item_type varchar(2046)
);
CREATE INDEX idx_index_type ON index_test ( item_type );
CREATE INDEX idx_index_value ON index_test ( value )
我做出以下选择:
explain select * from index_test r where r.item_type='B';
explain select r.value from index_test r where r.value=56;
执行计划的解释是这样的:
Seq Scan on index_test r (cost=0.00..1.04 rows=1 width=1576) Filter: ((item_type)::text = 'B'::text)'
据我了解,这是一个全表扫描。 现在的问题是:为什么不使用我的索引?
可能的原因是,我在我的表中的行过少? 我只有20人。 能否请您给我提供一个SQL语句很容易填充我用随机的数据表,检查索引问题?
我发现这篇文章: http://it.toolbox.com/blogs/db2luw/how-to-easily-populate-a-table-with-random-data-7888 ,但它并没有为我工作。 该语句的效率并不重要,只有简单。