Size: a a a

pgsql – PostgreSQL

2021 January 16

mm

miruzzy miruzzy in pgsql – PostgreSQL
"Gather  (cost=1000.00..54474208.23 rows=37024659 width=37)"
"  Workers Planned: 2"
"  ->  Parallel Seq Scan on apall  (cost=0.00..50770742.33 rows=15426941 width=37)"
"        Filter: (mlog ~~ 'jully%'::text)"
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
при этом по полю построен btree индекс и выполнен vacuum analyze
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Я подумал, может он думает, что много строк на выходе и поэтому не хочет применять индекс
Попробовал like 'jullysdfsdfsdfsdfsdfsdfsdfsdfdsfsdokimjpo2095340%'

Результат не меняется
 ->  Parallel Seq Scan on apall  (cost=0.00..50770742.33 rows=152727 width=37)
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
в таблице ~3 млрд строк
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
miruzzy miruzzy
Ребята, подскажите, я чёт туплю похоже
Обычный btree индекс по полю text может применяться для поиска  с условием where text_column like 'text%' ( т.е. поиск по началу строки ) ?
Может
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
miruzzy miruzzy
explain кричит, что будет использовать seqscan
Ну так для этого условия только он и может использоваться
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Ilia Zviagin
Ну так для этого условия только он и может использоваться
т.е. btree не будет использоваться для поиска по началу строки ?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
miruzzy miruzzy
т.е. btree не будет использоваться для поиска по началу строки ?
CREATE INDEX test_index ON test_table (col varchar_pattern_ops);
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
Вот это заклинание должно помочь.
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Понял, попробую
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Роман Жарков
CREATE INDEX test_index ON test_table (col varchar_pattern_ops);
А можете подсказать, что за локаль"C" ?
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
miruzzy miruzzy
т.е. btree не будет использоваться для поиска по началу строки ?
Будет, я не говорил что не будет.

(Конечно При условии хорошей селективности)
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
miruzzy miruzzy
А можете подсказать, что за локаль"C" ?
От этой штуки зависят правила сортировки, форматирование дат и прочее мне малопонятное.
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
miruzzy miruzzy
А можете подсказать, что за локаль"C" ?
"ничего не делать", самые простые имплементаций функций и врапперы локализаций всё передают как пришло из кода, не заглядывая в словари
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Поправьте, если я правильно понимаю

Локаль, это кодировка текста?

В С ( си ) на винде локаль стандартная ANSII , а в линухе UTF8.
А text по стандарту имеет кодировку UTF8.

Поэтому на винде локаль не совпадает, и поэтому не работает нормально мой индекс, поэтому и приходится в индексе преобразовывать кодировку
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
локаль - это не кодировка
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
Ну я в Си помню функцию setlocale();
источник

DP

Darafei Praliaskousk... in pgsql – PostgreSQL
локаль - это вообще все правила преобразования внутренних представлений во внешние, включая даты, порядок букв в алфавите, язык, страну и все чудеса.
источник

mm

miruzzy miruzzy in pgsql – PostgreSQL
понял
источник