Pytania otagowane jako pattern-matching


3
Jak wdraża się LIKE?
Czy ktoś może wyjaśnić, w jaki sposób operator LIKE jest implementowany w obecnych systemach baz danych (np. MySQL lub Postgres)? lub wskazać mi jakieś odniesienia, które to wyjaśniają? Naiwnym podejściem byłoby sprawdzanie każdego rekordu, wykonywanie wyrażenia regularnego lub częściowego dopasowania ciągu na polu zainteresowania, ale mam wrażenie (mam nadzieję), że …

2
Jak utworzyć indeks, aby przyspieszyć zagregowane zapytanie LIKE dla wyrażenia?
Mogę zadawać złe pytanie w tytule. Oto fakty: Pracownicy działu obsługi klienta narzekają na długi czas reakcji podczas wyszukiwania klientów w interfejsie administracyjnym naszej witryny opartej na Django. Używamy Postgres 8.4.6. Zacząłem rejestrować powolne zapytania i odkryłem tego winowajcę: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') Uruchomienie tego zapytania …

1
Dlaczego indeksowałbyś text_pattern_ops w kolumnie tekstowej?
Dzisiaj Siedem baz danych w siedmiu tygodniach zapoznało mnie z indeksami poszczególnych operatorów. Możesz indeksować ciągi znaków dla wzorca pasującego do poprzednich zapytań, tworząc text_pattern_opsindeks klasy operatora, o ile wartości są indeksowane małymi literami. CREATE INDEX moves_title_pattern ON movies ( (lower(title) text_pattern_ops); Użyliśmy, text_pattern_opsponieważ tytuł jest typu tekstowego. Jeśli trzeba …

2
Wyszukiwanie Trigram staje się znacznie wolniejsze, ponieważ ciąg wyszukiwania staje się dłuższy
W bazie danych Postgres 9.1 mam tabelę table1z ~ 1,5 mln wierszy i kolumnęlabel (uproszczone nazwy ze względu na to pytanie). Istnieje funkcjonalny indeks trigram na lower(unaccent(label))(unaccent() został unieruchomiony, aby umożliwić jego użycie w indeksie). Następujące zapytanie jest dość szybkie: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword%'))); count ------- …



5
Dopasowanie a] (zamykający nawias kwadratowy) do PATINDEX przy użyciu symbolu wieloznacznego „[]”
Piszę niestandardowy parser JSON w języku T-SQL † . Na potrzeby mojego parsera używam PATINDEXfunkcji, która oblicza pozycję tokena na podstawie listy tokenów. Wszystkie tokeny w moim przypadku są pojedynczymi postaciami i obejmują one: {} []:, Zwykle, gdy muszę znaleźć (pierwszą) pozycję dowolnego z kilku podanych znaków, używam PATINDEXfunkcji w …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.