[sisyphus] postgresql index row

Денис Смирнов mithraen на freesource.info
Пт Ноя 12 16:44:02 UTC 2010


On Fri, Nov 12, 2010 at 07:25:42PM +0300, Alexey I. Froloff wrote:

AIF> "Шарик, ты балбес!" (ц)
AIF> http://www.postgresql.org/docs/9.0/interactive/indexes-types.html
AIF> """The optimizer can also use a B-tree index for queries
AIF> involving the pattern matching operators LIKE and ~ *if* the
AIF> pattern is a constant and is anchored to the beginning of the
AIF> string -- for example, col LIKE 'foo%' or col ~ '^foo', but
AIF> not col LIKE '%bar'."""

Добавлю -- если понимать как работает b-tree индекс, то становится
очевидным что работать иначе оно не может.

Ибо он помогает только для операций сравнения. При этом x like 'abc%' это
то же самое что: (x >= 'abc' AND x < 'abd'), и только поэтому индекс
помогает в этой ситуации искать.

При этом индексы по большим строкам -- безусловное зло, а их желание
говорит о необходимости привести структуру базы в порядок.

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20101112/760ff967/attachment.bin>


Подробная информация о списке рассылки Sisyphus