|
|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Alexander Bodnar 2:5020/400 19 Feb 2001 14:00:22 To : All Subject : Проблема с индексацией в PostgreSQL --------------------------------------------------------------------------------
Привет всем.
Проблема в следующем.
Есть таблица:
test=# SELECT * FROM t1 LIMIT 1;
f1 | f2 | f3 | f4 | f5 | f6
----+----+----+----+----+----------
1 | 1 | 1 | 1 | 1 | 1234weer
(1 row)
поля f1, f2, f3, f4, f5 типа int4;
поле f6 типа varchar(300);
в таблице 2000001 записей.
test=# SELECT count(*) FROM t1;
count
---------
2000001
(1 row)
создаю индекс;
test=# CREATE INDEX t1_f1 ON t1 USING btree (f1);
CREATE
затем выполняю запрос:
test=# SELECT * FROM t1 WHERE f1=100;
f1 | f2 | f3 | f4 | f5 | f6
-----+-----+-----+-----+-----+----------
100 | 100 | 100 | 100 | 100 | 1234weer
(1 row)
и данный запрос выполняется очень долго.
перечитывается вся таблица, а она не маленькая.
смотрю план выполнения и в результате:
test=# EXPLAIN SELECT * FROM t1 WHERE f1=100;
NOTICE: QUERY PLAN:
Seq Scan on t1 (cost=0.00..41667.01 rows=20000 width=32)
EXPLAIN
При данной выборке идет полное сканирование все таблицы.
Почему не используется индекс?
Может я что-то не то сделал?
--- ifmail v.2.15dev5
* Origin: Unknown (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/9138133e9432.html, оценка из 5, голосов 10
|