Re: best practices with index on varchar column
От
Tom Lane
Тема
Re: best practices with index on varchar column
Дата
Msg-id
10502.1111514894@sss.pgh.pa.us
Ответ на
Список
Дерево обсуждения
best practices with index on varchar column "Layet Benjamin" <benjamin@moonfactory.co.jp>
Re: best practices with index on varchar column Dawid Kuroczko <qnex42@gmail.com>
Re: best practices with index on varchar column PFC <lists@boutiquenumerique.com>
Re: best practices with index on varchar column Tom Lane <tgl@sss.pgh.pa.us>
Re: best practices with index on varchar column "Michael Ryan S. Puncia" <mpuncia@census.gov.ph>
Re: best practices with index on varchar column Dawid Kuroczko <qnex42@gmail.com>
Re: best practices with index on varchar column Richard Huxton <dev@archonet.com>
PFC writes: >> Can I use an index on a varchar column to optimize the SELECT queries >> that use " column LIKE 'header%' "? > Yes > Note that if you want case insensitive matching you need to make an index > on lower(column) and SELECT WHERE lower(column) LIKE 'header%' > Locales may bite you. Yes. If your database locale is not "C" then the default btree index behavior does not match up with what LIKE needs. In that case you need a special index using the appropriate "pattern_ops" opclass, eg CREATE INDEX test_index ON test_table (col varchar_pattern_ops); or if you want case insensitive matching CREATE INDEX test_index ON test_table (lower(col) varchar_pattern_ops); and then write the queries with lower() as PFC illustrates. *Don't* use ILIKE --- it basically can't use indexes at all. For more info see http://www.postgresql.org/docs/8.0/static/indexes-opclass.html regards, tom lane
В списке pgsql-performance по дате отправления
От: Richard Huxton
Дата: