ďťż
 
[PostgreSQL] Problem z korzystaniem z indeksu ďťż
 
[PostgreSQL] Problem z korzystaniem z indeksu
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[PostgreSQL] Problem z korzystaniem z indeksu



Andrzej Nakonieczny - 12-01-2006 09:31
[PostgreSQL] Problem z korzystaniem z indeksu
  Witam.

Jest sobie taka oto tabela:

poligon=> \d corporations
Table "public.corporations"
Column | Type |
Modifiers
---------------+------------------------+--------------------------------------------------------------
id | integer | not null default
nextval('public.corporations_id_seq'::text)
name | character varying(255) |
identitiesref | integer | not null
Indexes:
"corporations_pkey" PRIMARY KEY, btree (id)
"idx_06" btree (identitiesref)
"idx_11" btree (name)
Foreign-key constraints:
"corporations_identitiesref_fkey" FOREIGN KEY (identitiesref)
REFERENCES identities(id)

poligon=>

W jaki sposób zmusić postgresa aby przy zapytaniu o kolumnę name z
wykorzystaniem like użył indeksu (tutaj idx_11) zamiast seq scan ?
Bo teraz wygląda to tak:

poligon=> EXPLAIN analyze select * from corporations where name = 'Jili s.c.';
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------
Index Scan using idx_11 on corporations (cost=0.00..6.02 rows=2 width=23) (actual time=0.046..0.097 rows=10 loops=1)
Index Cond: ((name)::text = 'Jili s.c.'::text)
Total runtime: 0.144 ms
(3 rows)

poligon=>

i to jest poprawne ale już:

poligon=> EXPLAIN analyze select * from corporations where name like 'Jili s.%';
QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
Seq Scan on corporations (cost=100000000.00..100007941.08 rows=1 width=23) (actual time=0.027..205.708 rows=12 loops=1)
Filter: ((name)::text ~~ 'Jili s.%'::text)
Total runtime: 205.777 ms
(3 rows)

poligon=>

Tabela ma około 400k rekordów, analyze na tabeli zapuszczone, vacuum
wcześniej wykonane, ustawiłem również random_page_cost na 2 (maszyna
dość szybka). Próbowałem wyłączyć seqscan ale jest wciąż uparty.
Jakieś inne propozycje ?

Pozdrawiam,
Andrzej





Artur Muszynski - 15-01-2006 19:16

  > poligon=> EXPLAIN analyze select * from corporations where name like 'Jili
> s.%';

CREATE INDEX idx ON tbl (col varchar_pattern_ops);

Poszukaj hasła operator class w manualu.

artur

> Pozdrawiam,
> Andrzej
>




Andrzej Nakonieczny - 15-01-2006 19:16

  Artur Muszynski <arturm@union.wytnijto.com.pl> wrote:

> CREATE INDEX idx ON tbl (col varchar_pattern_ops);
>
> Poszukaj hasła operator class w manualu.

Dzięki, pomogło.

Pozdrawiam,
Andrzej
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    mysql i mysql-front, problem String line; if (line=="cos"){...}....problem [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo... plik corel 11 na corel 8 = problem z otwarciem
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • quentinho.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com